// 생성자에대해서..

// 1. 생성자의모양, 언제호출되는가?

// 2. 생성자를1개도만들지않으면컴파일러가기본생성자1개를제공한다.

 

#include <iostream>

using namespace std;

 

class Point

{

private:

        int x;

        int y;

public:

        Point()                       // 1

        {

               Point(0, 0);   // 생성자에서다른생성자호출!!

               x = 0;

               y = 0;

               cout << "Point()" << endl;

        }                                    

        Point( int a, int b ) { x = a; y = b; }     // 2

};

 

class Rect

{

        Point p1;

        Point p2;

public:

        Rect()

        {

               cout << "Rect()" << endl;

        }

};

 

void main()

{

        Rect r; // ?

 

 

        Point* p5;             // 객체가아니라포인터이다. 생성자호출안됨

 

        Point* p6 = (Point*)malloc( sizeof(Point) ); //생성자호출안됨.

        Point* p7 = new Point; // 생성자호출

 

        Point p;

        //p.Point();           // 생성자의명시적호출은안된다.!!!

 

        Point p3[10];  // 1번생성자를10번호출

        Point p4[5] =
         { Point(1, 2), Point(2, 3) };  // 2
번생성자2, 1번생성자3번호출

 

        Point p1;

        Point p2( 1, 2 );

}

 

Tag |

Trackback Address :: 이 글에는 트랙백을 보낼 수 없습니다