【问题标题】:call method A in a class B in a header file?在头文件的B类中调用方法A?
【发布时间】:2020-06-08 05:38:27
【问题描述】:
class person{
...
public:
get_age(){..}
...
};

class society{
private:
person Ann;
....
};

我不确定如何在类 person 中使用最少声明的头文件中调用 get_age 方法?我试图搜索但找不到确切的例子。 类似的东西 头文件:

society tennis;
tennis.Ann.get_age()

我尝试从类 person 访问方法 get_age() 失败了,因为该方法属于个人但不属于社会。如何用最少的语句访问 get_age()。

【问题讨论】:

  • 头文件(或非头文件)没有什么特别之处。请说明您尝试过和失败的原因。
  • 您无法访问tennisAnn 成员,因为Annprivate 部分中。 private 部分中的内容不能被定义类之外的函数或类访问。换句话说,class society 的成员 privatesociety 方法之外是不可访问的。尝试将成员公开或更改您的设计或实现。

标签: c++ class inheritance methods subclass


【解决方案1】:

在标头中创建类实例(对象)通常是一种不好的做法。一旦您将标头包含到任何 .cpp 文件中,其内容就会粘贴到您的 .cpp 文件中,从而导致创建对象的多个定义。例如。编译器/链接器会说你的对象 tennis 被定义了两次——在你的头文件和例如main.cpp 包含您的标头。

【讨论】:

    猜你喜欢
    • 2013-06-12
    • 1970-01-01
    • 2021-08-05
    • 1970-01-01
    • 1970-01-01
    • 2021-06-21
    • 1970-01-01
    • 1970-01-01
    • 2019-05-13
    相关资源
    最近更新 更多