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