본문 바로가기

생성자3

CPP 초급 강좌 30. explicit 생성자 CPP 초급 강좌 30. explicit 생성자 explicit 생성자에 대해 봅시다. 다음 코드를 볼까요. class MyNumber{ private: int value; public: MyNumber(int value) { this->value = value; } }; int main() { MyNumber n1(1); //a MyNumber n2 = 2; //b } 간단하게 숫자 하나를 저장하는 클래스를 만들었고, main에서 객체를 생성합니다. a n1의 경우는 n1(1); 이란 코드로 직접 초기화를 합니다. direct initialization b n2는 =을 사용하여 복사 초기화를 합니다. copy initalization 이제는 MyNumber을 인자로 사용하는 함수가 있다면, 다음 코드가.. 2020. 11. 12.
CPP 초급 강좌 28. 생성자 constructor CPP 초급 강좌 28. 생성자 constructor 이전에도 생성자에 대해 보았지만, 조금 더 자세히 보겠습니다. 아래 소스를 봅시다. class Point { private: int x, y; public: Point() { x = y = 0; } Point(int x, int y) { this->x = x; this->y = y; } }; int main() { Point p1; Point p2(0, 0); } Point 클래스를 제작하고 생성자 인자 없는 버전과 인자가 둘인 버전을 제작하였습니다. 그리고 main 함수에서 둘을 호출하죠. 생성자 또한 오버로딩이 가능합니다. 위는 문제없는 코드입니다. 위의 코드에서 Point() { x = y = 0; } 생성자 코드를 제거한다고 가정하여 봅시다. .. 2020. 11. 9.
CPP 초급 강좌 25. 객체지향 프로그램밍 클래스, 생성자, 소멸자, 파일분할, 클래스 탬플릿 CPP 초급 강좌 25. 객체지향 프로그램밍 클래스, 생성자, 소멸자, 파일 분할, 클래스 탬플릿 23강에서 본 지식을 기억하며, 간단한 스택 자료형을 struct로 구현해 보았다. #include using namespace std; struct Stack { private: int data[10]; int index; public : void init() { index = 0; } void push(int value) { data[index++] = value; } int pop() { return data[--index]; } }; int main() { Stack myStack; myStack.init(); myStack.push(10); cout 2020. 11. 4.