C++在构造函数中初始化成员变量的两种方法

C++在构造函数中初始化成员变量有两种方法:

class AA
{
public:
    AA(){x=1;y=2;}
    void ToString(){cout<<"x:"<<x<<endl;cout<<"y:"<<y<<endl;}
private:
    int x;
    int y;
};

class AA
{
public:
    AA():x(1),y(2){}
    void ToString(){cout<<"x:"<<x<<endl;cout<<"y:"<<y<<endl;}
private:
    int x;
    int y;
};

上边两种方法执行都是正确的,那有什么区别呢?如果有要初始化成员常量,则只能用第二种方法:

class AA
{
public:
    AA():x(1),y(2){}
    void ToString(){cout<<"x:"<<x<<endl;cout<<"y:"<<y<<endl;}
private:
    const int x;
    const int y;
};


评论: 0 | 引用: 0 | 查看次数: 5812
发表评论
登录后再发表评论!