#include <iostream> using namespace std;
class smart { public: int a; smart(int a)//인자가 1개인 경우 { cout <<"생성자 호출" << a <<endl; smart::a=a; //= 뒤에 있는 a는 인자 a. public: 안에 있는 int a 를 지정하기 위하여 smart::를 붙였다. }
//인자가 2개인 경우 smart(int a, int b) { cout <<"생성자 호출" << a << ","<< b <<endl; smart::a=a+b; } smart() { cout <<"생성자 호출\n"; a=0;//여기서도 smart::사용해도 된다. 그러나 디폴트는 인자가 없으므로 생략하였다. } ~smart() { cout <<"소멸자 호출 [" << a << "]\n" } };
int main() { smart obj1; //디폴트 생성자. cout <<"main 실행중1\n"; //생성자 오버로딩, 인자가 있는 것은 뒤에()를 붙이고 smart obj2(100); //()안에 변수의 값을 넣는다. smart obj3(200, 300); //인자가 2개인 경우 cout <<"main 실행중2\n";
return 0; } //생성자는 프로그램내에서 객체가 생성되면 바로 생성되고 //순서대로 실행이 된다.
//소멸자는 main()함수가 리턴하기 직전에 소멸되며, 생성자와 역순으로 //소멸된다.
|