목록분류 전체보기 (150)
개발하는 리프터 꽃게맨입니다.
개요 객체 지향 프로그래밍의 핵심 개념은 은닉성, 상속, 다형성입니다. 이번 포스팅에서 설명할 것은 '상속'인데, 상속은 객체들을 관리하고 설계하기에 매우 훌륭한 도구입니다. '상속'은 '파생 클래스'가 '기초 클래스'의 기능을 계승하는 것이라고 설명할 수 있습니다. 일반적으로 상속의 뿌리에는 '베이스 클래스'라는 것이 있고, 베이스 클래스를 상속받는 '파생 클래스'가 존재합니다. 흔히 이것을 '부모'와 '자식'의 관계에 있다고 말하는데요. 부모는 자식에게 상속하고 싶은 함수와 변수를 설정하고, 자식은 부모로부터 상속받은 함수와 변수를 사용할 수 있습니다. 다음 코드로 예시를 보겠습니다. class Player { public: Player(int x, int y, int id) : _x(x), _y(y..
클래스를 기본적으로 정의하면 암시적으로 생성되는 함수들이 있습니다. 1) 기본 생성자 2) 기본 소멸자 3) 기본 복사 생성자 4) 기본 대입 연산자 class Object { //이 아래 코드는 굳이 명시하지 않아도 //기본적으로 컴파일러가 만들어준다. public: //기본 생성자 Object() {} //기본 소멸자 ~Object() {} //기본 복사 생성자 Object(const Object& other) : a(other.a) , b(other.b) {} //기본 대입 연산자 Object& operator=(const Object& other) { if(this != &other) { Object newObject; newObject.a = other.a; newObject.b = other...
오버로딩 이름은 같지만 매개변수가 다르며 같은 유효 범위 내에 있는 함수를 '오버로딩'한다고 합니다. 다음 코드를 볼까요? void SayHello(int num) { cout
참고: https://powerclabman.tistory.com/26 [C++] 경로 역추적: BFS을 이용한 '미로찾기 알고리즘' 개요 위 그림과 같은 임의의 미로가 있고 플레이어와 도착지의 위치가 정해져 있을 때, 플레이어는 도착지를 어떻게 찾을 수 있을까요? 그리고 어떻게 해야 최단 경로로 도착지에 도달할 수 있 powerclabman.tistory.com 참고: https://powerclabman.tistory.com/27 [C++/이론] 다익스트라 알고리즘 (Dijkstra Algorithm) 참고: https://powerclabman.tistory.com/24 참고: https://powerclabman.tistory.com/25 가중치 그래프 이전 포스팅에서 사용했던 그래프는 모두 가중..
참고: https://powerclabman.tistory.com/24 참고: https://powerclabman.tistory.com/25가중치 그래프이전 포스팅에서 사용했던 그래프는 모두 가중치가 없는 그래프였습니다. 즉, 노드와 노드를 이동하는데 비용이 동일하다는 것이죠. 근데, 실제로 상황에서 A->B로 가는 것과 A->C로 가는 것의 비용이 다를 수도 있겠죠? 서울 -> 강원도 서울 -> 부산 두 조건 다 도시와 도시 사이를 이동하는 것이지만, 소모하는 기름, 거리, 톨게이트 비용 등.. 많은 것이 다를 것입니다. 이런 비용을 '가중치' 라고 하고, 가중치를 표현한 그래프를 '가중치 그래프'라고 부릅니다. int adjacent[5][5] = { 0,1,1,0,0, 0,0,1,0,1, 0,0,..