头文件:
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”。
答案 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;