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;
}

cs


나. 컴파일러에 의해서 기본 생성자 자동 삽입

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;
}

cs


만약 하나의 아래와 같은 생성자라도 생성되어 있을 경우에 컴파일러는 기본생성자를 생성하지 않으며, 기본생성자를 생성하는 객체 생성 코드를 삽입시 기본 생성자가 자동으로 삽입되지 않기 때문에 오류를 띄우게 된다.


1
2
3
4
 
Circle :: Circle(int r) {
 .... 
}

cs


반응형