在具有 C++ 中另一个类型的类中声明属性 [重复]
Posted
技术标签:
【中文标题】在具有 C++ 中另一个类型的类中声明属性 [重复]【英文标题】:Declaring property in a class that has the type of another one in C++ [duplicate] 【发布时间】:2016-01-28 14:36:47 【问题描述】:我是 C++ 新手,但我以前有 php 和 C# (OOP) 的编程经验。 我所拥有的是:两个类,其中一个具有与另一个类的类型相同的私有属性。 来源:
class Foo
public:
Foo(int n)
;
class Bar
private:
Foo foo;
public:
Bar()
this->foo = Foo(10);
;
Bar bars[123];
我正在尝试使用Bar
中的构造函数声明Foo
的属性。不幸的是,我这样做的方式不起作用。它给出了一系列错误,例如
没有匹配的函数调用 'Foo::Foo()'
如何让它工作? 感谢您的回复。
【问题讨论】:
【参考方案1】:您需要在member initialization list 中正确初始化Foo
,如下所示:
class Bar
private:
Foo foo;
public:
Bar() :
foo(10)
;
否则,编译器会首先尝试使用默认构造函数初始化this->foo
,然后再进入构造函数的主体。由于Foo
没有,所以编译失败。
【讨论】:
以上是关于在具有 C++ 中另一个类型的类中声明属性 [重复]的主要内容,如果未能解决你的问题,请参考以下文章