指针引用类赋值

Pointer-reference-class assignment

本文关键字:赋值 引用 指针      更新时间:2023-10-16

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

如果我有类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,以防止不需要的隐式强制转换。