嵌套类中变量的访问值

时间:2012-07-14 02:50:50

标签: c++ class nested

头文件:

class A
{
public:        
    void setNumber(unsigned );
    void changeNumber();  
    unsigned result;

    class B
    {
    public:
        void setResult();
        unsigned valorB;
    };

private:                           
    static unsigned number; 
};

实施档案:

void A::setNumber(unsigned value)
{
    number = value;
}

void A::changeNumber()
{
    result = number * 5 + 10;
}

void A::B::setResult()
{
    valorB = number + 5;
}

如何访问内部类中的变量?我知道如何访问A的变量,但我不知道如何访问B的变量。

我想访问“valorB”。

2 个答案:

答案 0 :(得分:2)

声明类是不够的,您需要类B实例来访问其变量。例如,您可以将成员变量的声明添加到类A,如下所示:

class B
{
public:
    void setResult();
    unsigned valorB;
};
B memberB;

现在您可以像这样访问valorB

A a;
a.memberB.valorB = 3;

代码中的另一个问题是缺少声明的静态变量number定义。您需要将此添加到您的CPP中:

unsigned A::number;

答案 1 :(得分:1)

根据您收到的错误消息

undefined reference to A::number

问题与valorB无关。问题是您没有提供A::number的定义。添加到您的.cpp文件:

unsigned A::number;