본문 바로가기

Programming/C/C++

C++/컴파일러에 의한 생성자 자동생성

반응형
기본 생성자는 프로그래머가 클래스 생성시 기본 생성자를 생성하지 않은 경우 컴파일러에 의해서 자동으로 생성된다.

가. 생성자를 선언하지 않은 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


반응형

'Programming > C/C++' 카테고리의 다른 글

C++/접근지정자  (0) 2017.10.22
C++/소멸자  (0) 2017.10.22
C++/예제/클래스/ Rectangle 클래스 만들기  (0) 2017.10.22
C/연산순서에 관한 예시  (0) 2017.09.27
C/C언어의 유래  (0) 2017.08.28