构造函数初始化
2016-02-21 18:52
288 查看
类的成员不允许设定初始值!
private:
int m_a = 10; //错误
=====================================================================
class Test
{
public:
//有参构造函数
Test(int a)
{
m_a = a;
}
//无参数构造函数
Test()
{
m_a = 0;
}
//四种应用场景
//赋值构造函数 copy构造函数
Test(const Test &obj)
{
}
public:
void print()
{
cout<<"m_a"<<m_a<<endl;
}
protected:
private:
int m_a;
};
void main()
{
//括号法
Test t1(10); //1 c++编译器自动调用这个类的有参构造函数
t1.print();
//=
Test t2 = 20; //2 c++编译器自动调用这个类的有参构造函数
t2.print();
//
Test t3 = Test(30);//3 程序员手工的调用构造函数 进行对象初始化
t3.print();
//new
Test *p = new Test(40);//3 new 关键字构造函数 进行对象初始化
t4.print();
delete p;
system("pause");
}
private:
int m_a = 10; //错误
=====================================================================
class Test
{
public:
//有参构造函数
Test(int a)
{
m_a = a;
}
//无参数构造函数
Test()
{
m_a = 0;
}
//四种应用场景
//赋值构造函数 copy构造函数
Test(const Test &obj)
{
}
public:
void print()
{
cout<<"m_a"<<m_a<<endl;
}
protected:
private:
int m_a;
};
void main()
{
//括号法
Test t1(10); //1 c++编译器自动调用这个类的有参构造函数
t1.print();
//=
Test t2 = 20; //2 c++编译器自动调用这个类的有参构造函数
t2.print();
//
Test t3 = Test(30);//3 程序员手工的调用构造函数 进行对象初始化
t3.print();
//new
Test *p = new Test(40);//3 new 关键字构造函数 进行对象初始化
t4.print();
delete p;
system("pause");
}