{
int i,j,k;
public:
member(int x=0)
{
i=j=k=x;
cout<<"member"<<i<<" \n"<<endl;
}
~member()
{
cout<<"~member"<<i<<" \n"<<endl;
}
};
class withMembers
{
// member Q(1),R(2),S(3); //error
member Q,R,S; //right
int i;
public:
withMembers(int I):i(I){cout<<"withMembrs"<<endl;}
~withMembers()
{
cout<<"~withMembers"<<endl;
}
};
int main(int argc, char* argv[])
{
withMembers WM(1);
}
执行以上代码为什么类中member Q,R,S;可以执行!而换成类中的member Q(1),R(2),S(3);提示错误。
如果我把member Q(1),R(2),S(3);放入main执行正确呢。谢谢!!
9 个解决方案
#1
类成员禁止在声明的时候进行初始化
所以,你的 member Q(1),R(2),S(3); 写public:
你可以这样写你的构造函数
withMembers(int I):i(I),Q(1),R(2),S(3){cout<<"withMembrs"<<endl;}
所以,你的 member Q(1),R(2),S(3); 写public:
你可以这样写你的构造函数
withMembers(int I):i(I),Q(1),R(2),S(3){cout<<"withMembrs"<<endl;}
#2
因为在类的定义时不可以初始化数据,如果非要初始化的话,可以在构造函数的初始化列表里完成
withMembers():Q(1),R(2),S(3)
withMembers():Q(1),R(2),S(3)
#3
happy__888([顾问团]寻开心) 动作好快呀
#4
类里不能初始化对象。
类只是个用于定义实例模板,不带动作的。动作都在函数中。
可以放到构造函数中。
类只是个用于定义实例模板,不带动作的。动作都在函数中。
可以放到构造函数中。
#5
来完了,UP
#6
不是类里的数据成员不能进行初始化,而是不能为类里的数据成员提供初始化值(只有整型static const成员例外)。类在实例化时,如果它的数据成员是一个类类型,在创建它时当然要调用默认构造函数对其进行初始化。
#7
可以通过构造函数来对保证类的每个对象都被初始化,如果一个类有构造函数,编译器在创建对象时就自动调用这个函数.
#8
class withMembers
{
// member Q(1),R(2),S(3); //error
syntax error
{
// member Q(1),R(2),S(3); //error
syntax error
#9
up
#1
类成员禁止在声明的时候进行初始化
所以,你的 member Q(1),R(2),S(3); 写public:
你可以这样写你的构造函数
withMembers(int I):i(I),Q(1),R(2),S(3){cout<<"withMembrs"<<endl;}
所以,你的 member Q(1),R(2),S(3); 写public:
你可以这样写你的构造函数
withMembers(int I):i(I),Q(1),R(2),S(3){cout<<"withMembrs"<<endl;}
#2
因为在类的定义时不可以初始化数据,如果非要初始化的话,可以在构造函数的初始化列表里完成
withMembers():Q(1),R(2),S(3)
withMembers():Q(1),R(2),S(3)
#3
happy__888([顾问团]寻开心) 动作好快呀
#4
类里不能初始化对象。
类只是个用于定义实例模板,不带动作的。动作都在函数中。
可以放到构造函数中。
类只是个用于定义实例模板,不带动作的。动作都在函数中。
可以放到构造函数中。
#5
来完了,UP
#6
不是类里的数据成员不能进行初始化,而是不能为类里的数据成员提供初始化值(只有整型static const成员例外)。类在实例化时,如果它的数据成员是一个类类型,在创建它时当然要调用默认构造函数对其进行初始化。
#7
可以通过构造函数来对保证类的每个对象都被初始化,如果一个类有构造函数,编译器在创建对象时就自动调用这个函数.
#8
class withMembers
{
// member Q(1),R(2),S(3); //error
syntax error
{
// member Q(1),R(2),S(3); //error
syntax error
#9
up