注册 登录
编程论坛 C++教室

问个类作成员变量时初始化问题

gdutljg 发布于 2009-08-14 12:12, 725 次点击
class A
{
public:
     A();
     A(int i){num=i;}
private:
    int num;
};
class B
{
public:
     B(int j){如何对成员a初始化????};
private:
     A a;
};

问题:我想在B中对A进行初始化,但我不可能在类B的定义中使用:A a(j)这样的方法,又想在构造B时就初始化A,那么只能在B构造函数里初始化A啦。
这个要怎么写?
有个方法是在A中定义一个init(int i)在B的构造中初始化。但这样看起来不是一个好方法,还有别的方法吗?
如果没有,那么这是不是C++的一个不好的地方?
请牛人回答我的以上三个问题,谢谢!
5 回复
#2
lintaoyn2009-08-14 12:50
在A和B都是类(数据类型),谈不上构造和初始化吧。类体中是不能对数据成员进行初始化。(还有应该是对a而不是A进行初始化,你提问的有问题)
#3
tinjp2009-08-14 12:58
使用初始化列表
B(int j) : a(j)
#4
pangding2009-08-14 14:17
回复 楼主 gdutljg
就是3楼说的那方法。
C++里的语法比较多,要在学的时候用心记,体会它的作用。然后在编程的时候多用~
#5
da728192009-08-15 20:01
3楼那样加参数列表,或者写到函数里,用点操作符再指明一边
#6
王晓明2009-08-18 15:15
初始化列表
1