【问题标题】:How do I access a class declared inside another class?如何访问在另一个类中声明的类?
【发布时间】:2015-09-20 22:33:00
【问题描述】:

我有一个简单的课程:

class cup{
public:
     cup();
     void drinkwater(water *t); // error occurs here
private:
     class water{
     public:
          int litres;
     };
};

但是,我收到一条错误消息,指出尚未声明“水”。有什么办法不用把水课放在外面就可以进课吗?

【问题讨论】:

  • 与命名空间相同:cup::water
  • drinkwater 引用之前声明是否。见this example。但是你应该澄清你打算如何使用它。
  • 仅供参考,您可以private时使用它。 (<s>I believe</s> that's legal)(我查过了,是的)。但正如@juanchopanza 所说,知道你的意图会很好。
  • 我只是想对它做一些操作,比如给升一个值。
  • 如果你想在cup之外使用water,它可能应该被声明为public或者根本不嵌套。

标签: c++ class


【解决方案1】:

drinkwater 定义上方的私有部分中转发声明class water;,例如

class cup{
    class water;
public:
     cup();
     void drinkwater(water *t); // error occurs here
private:
     class water{
     public:
          int litres;
     };
};

【讨论】:

    猜你喜欢
    • 2019-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-15
    • 1970-01-01
    相关资源
    最近更新 更多