以下方案的语法方面存在以下问题:
如果我有Foo类和Foo1类,我的类Foo有一个类型为Foo1的私有成员:
.h文件:
class Foo{
Foo1 *oFoo;
public:
Foo(Foo1 &Fooy);
}
.cc文件:
Foo::Foo(Foo1 &Fooy){
oFoo = &Fooy;
}
上述构造函数中的赋值是否合法?我是C ++的新手。
答案 0 :(得分:1)
它应该是oFoo
而不是Foo
,并且该成员应该在初始化列表中初始化:
Foo::Foo(Foo1 &Fooy): oFoo(&Fooy) {
}
否则没关系。考虑使构造函数explicit
防止不必要的隐式转换。