课堂上的外部课程&访问

时间:2012-10-21 09:18:13

标签: c++ class

以下是我现在在MyClass.hpp中的内容:

class CLASS
{
    public:
        class AAA
        {
            public:
                char c_str[1024];
        };

        class BBB
        {
            public:
                int count;
        };
};

extern class CLASS              CLASS;
extern class CLASS::AAA         AAA;
extern class CLASS::BBB         BBB;

MyClass.cpp:

class CLASS                 CLASS;
class CLASS::AAA            AAA;
class CLASS::BBB            BBB;

访问元素:

AAA.c_str = 0;
BBB.count = 0;

但我希望获得这一种访问变体:

CLASS.AAA.c_str = 0;
CLASS.BBB.count = 0;

......或......

CLASS:AAA:c_str = 0;
CLASS:BBB:count = 0;

......所以我应该怎么做呢? :C

2 个答案:

答案 0 :(得分:1)

AAABBB是独立的对象,而不是CLASS类中的对象。您必须在CLASS类中声明内的对象才能实现:

class CLASS
{
public:
    class AAA { ... };

    class BBB { ... };

    // Declare object of the above classes
    AAA aaa;
    BBB bbb;
};

CLASS cls;

cls.aaa.c_str[0] = 0;
cls.bbb.count = 0;

答案 1 :(得分:0)

你不能因为CLASS没有属性(也没有字段)。

你可以写CLASS :: AAA但不能写CLASS.AAA。