【发布时间】:2019-01-31 22:38:19
【问题描述】:
我对以下代码有 3 个问题:
class cb
{
public:
int y_;
class iterator
{
public:
//void func() { y_ = 5; } // (1)
private:
int x_;
//cb a; // (2)
};
void funcCB() { }
};
class Human
{
public:
void func() const {
cb c; // (3)
c.funcCB();
}
// (4)
};
1- 为什么我不能像(1)那样在内部类中使用外部类的成员变量y_?
2- 为什么我不能像 in(2) 那样从内部类中的外部类创建对象,但我只能创建指针和引用?
3- 如果我将 (3) cb c; 处的行移动到 (4) 处的行,为什么会出现编译错误?
【问题讨论】:
标签: inner-classes this-pointer