【问题标题】:How to pass a class as a type in a function如何在函数中将类作为类型传递
【发布时间】:2017-03-02 02:41:16
【问题描述】:

我不完全确定我的情况的措辞,这使得我很难找到答案。基本上,如果有一个类 A 有一个属于另一个类 B 的私有成员(有关系),我该如何制作 A 类的构造函数?

A 类构造函数:

classA::classA(int a, int b, classB c);

这给了我“错误:调用 'classB::classB()' 时没有匹配的函数,然后根据他们的参数和我提供的数量列出候选者;当然还有 'expected primary function before c.'我可能遗漏了一些相当大的东西,这就是为什么代码非常通用,所以我只需要一个通用的答案来为我指明正确的方向。您可以假设 B 和 A 的其余代码尽可能少。谢谢!

【问题讨论】:

  • 如果您还可以添加构造函数的代码会很有帮助。无论如何,似乎 A 的构造函数正在尝试使用不带参数的构造函数初始化它的 B 成员,而后者没有参数。
  • 上下文不足。 classA:classA 中的单个冒号是可疑的。这是 goto 的标签吗?
  • 显示所涉及的代码会改善您的问题。 See here for posting guidelines

标签: c++ class constructor relationship function-parameter


【解决方案1】:

据我了解,您在类 A 中有一个私有成员 B,您没有在构造函数的初始化列表中初始化。结果,调用了 B 的默认构造函数,错误提示不可用。

class A {
    B b;
public:
    A(/* parameters */)
    : b(/* parameters to construct b */) // missing part
    { }
};

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-05
    • 2018-01-04
    • 1970-01-01
    • 2022-10-06
    • 1970-01-01
    相关资源
    最近更新 更多