1

头文件:

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”。

4

2 回答 2

2

声明一个类是不够的,你需要一个类的实例B来访问它的变量。例如,您可以向 class 添加成员变量的声明A,如下所示:

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

现在您可以valorB像这样访问:

A a;
a.memberB.valorB = 3;

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

unsigned A::number;
于 2012-07-14T03:00:45.600 回答
1

根据您收到的错误消息,

undefined reference to A::number

问题与valorB. 问题是您没有提供A::number. 添加到您的.cpp文件中:

unsigned A::number;
于 2012-07-14T03:02:32.117 回答