指针引用类赋值

时间:2012-07-19 21:46:16

标签: c++ class pointers reference g++

以下方案的语法方面存在以下问题:

如果我有Foo类和Foo1类,我的类Foo有一个类型为Foo1的私有成员:

.h文件:

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

.cc文件:

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

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

1 个答案:

答案 0 :(得分:1)

它应该是oFoo而不是Foo,并且该成员应该在初始化列表中初始化:

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

否则没关系。考虑使构造函数explicit防止不必要的隐式转换。