Programming/C/C++
C++/컴파일러에 의한 생성자 자동생성
현벨
2017. 10. 22. 22:19
반응형
기본 생성자는 프로그래머가 클래스 생성시 기본 생성자를 생성하지 않은 경우 컴파일러에 의해서 자동으로 생성된다.
가. 생성자를 선언하지 않은 Circle 클래스
1 2 3 4 5 6 7 8 9 10 | class Circle { public: int radius; double getArea(); }; int main(){ Circle donut; } |
나. 컴파일러에 의해서 기본 생성자 자동 삽입
1 2 3 4 5 6 7 8 9 10 11 12 13 | class Circle{ public: int radius; double getArea(); Circle(); }; Circle::circle(){ } int main() { Circle donut; } |
만약 하나의 아래와 같은 생성자라도 생성되어 있을 경우에 컴파일러는 기본생성자를 생성하지 않으며, 기본생성자를 생성하는 객체 생성 코드를 삽입시 기본 생성자가 자동으로 삽입되지 않기 때문에 오류를 띄우게 된다.
1 2 3 4 | Circle :: Circle(int r) { .... } |
반응형