【问题标题】:Pointer-reference-class assignment指针引用类赋值
【发布时间】:2012-07-19 04:01:04
【问题描述】:

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

如果我有 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】:

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

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

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

    【讨论】:

    • 我发现了错误!它不在我发布的问题的代码中,但谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-15
    • 1970-01-01
    • 2013-05-16
    相关资源
    最近更新 更多