0

以下场景的语法是否有问题:

如果我有 Foo 类和 Foo1 类,并且我的 Foo 类有 Foo1 类型的私有成员:

.h 文件:

class Foo{
  Foo1 *oFoo;
public:
  Foo(Foo1 &Fooy);
}

.cc 文件:

Foo::Foo(Foo1 &Fooy){
  oFoo = &Fooy;
}

上述构造函数中的赋值是否合法?我是 C++ 新手。

4

1 回答 1

1

它应该oFoo代替Foo,并且成员应该在初始化列表中初始化:

Foo::Foo(Foo1 &Fooy): oFoo(&Fooy) {
}

否则没关系。考虑制作构造函数explicit以防止不需要的隐式强制转换。

于 2012-07-19T21:50:19.333 回答