블로그 이미지
송시혁

calendar

1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30

Notice

Tag

Recent Post

Recent Comment

Recent Trackback

Archive

2013. 11. 7. 11:00 c++


#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(200300);    //인자가 2개인 경우 
  cout <<"main 실행중2\n";
  

  return 0;
}
//생성자는 프로그램내에서 객체가 생성되면 바로 생성되고
//순서대로 실행이 된다.

//소멸자는 main()함수가 리턴하기 직전에 소멸되며, 생성자와 역순으로
//소멸된다.



posted by 송시혁