指针引用类赋值

问题描述 投票:0回答:1

在以下场景的语法方面,以下是否有问题:

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

.h文件:

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

.cc文件:

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

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

c++ class pointers reference g++
1个回答
1
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.