뚜둔뚜둔✩

판다의 개발일지

생성자 3

[C++] 복사 생성자 (Copy Constructor)

모든 객체는 생성 시 "생성자" 함수를 자동으로 호출한다. [C++] 구조체(struct)와 클래스(class) 구조체 여러 데이터 값을 갖는 어떤 새로운 타입을 정의할 때 흔히 구조체를 사용한다. C 언어에서의 구조체는 실제 데이터만을 포함하지만 C++에서는 데이터뿐만 아니라 생성자, 소멸자, 멤버 pandas-are-bears.tistory.com 컴파일러와 생성자 생성자는 반드시 생성 시에 호출되기 때문에, 사용자가 생성자를 별도로 선언하지 않아도 컴파일러가 아무 동작을 하지 않는 생성자를 자동으로 생성하여 추가한다. 다음 예시에서 볼 수 있듯이, 컴파일러가 자동 생성하는 생성자 덕분에 p1 선언에는 문제가 없지만 p2 선언은 컴파일 에러가 발생한다. class Point { private: int..

C · C++ 2023.01.15

[C++] 생성자와 초기화 리스트 (Initializer List)

C++에서 생성자는 어떤 구조체 또는 클래스 객체의 생성 시 자동으로 호출되는 함수이다. 따라서 생성자에서는 흔히 초기화에 필요한 동작을 수행하게 되는데, 이때 멤버 변수를 초기화하는 데에는 2가지 방법이 있다. class Point { public: Point(int x_val, int y_val); private: int x; int y; };​ (1) 생성자 함수 블록 내에서 멤버 변수 초기화 (대입) Point::Point(int x_val, int y_val) { x = x_val; y = y_val; } (2) 초기화 리스트로 초기화 (초기화) Point::Point(int x_val, int y_val) : x(x_val), y(y_val) { } 초기화 리스트는 객체의 생성 후 값을 대입하..

C · C++ 2022.05.26

[C++] 구조체(struct)와 클래스(class)

구조체 여러 데이터 값을 갖는 어떤 새로운 타입을 정의할 때 흔히 구조체를 사용한다. C 언어에서의 구조체는 실제 데이터만을 포함하지만 C++에서는 데이터뿐만 아니라 생성자, 소멸자, 멤버 함수, 접근 지정자를 포함할 수 있다는 것이 다르다. [ C언어 ] struct Point { int x; int y; }; [ C++ ] struct Point { private: int x; int y; public: Point() {} ~Point() {} int getX(void) { return x; } int getY(void) { return y; } }; 접근 지정자 C++ 구조체는 접근 지정자로 특정 멤버 변수 및 함수를 외부에서 접근할 수 없게 할 수 있다. private 접근 지정자는 외부에서의 접..

C · C++ 2022.05.15