

























class IModify
{
public:
virtual void Modify(int a) = 0;
};
class Dog
{
public:
void ShowAge()
{
cout << m_age << '\n';
}
class Cat;
private:
int m_age{ 100 };
};
class Dog::Cat :public IModify
{
public:
Cat(Dog *d):m_age(d->m_age){}
void Modify(int a) override;
private:
int &m_age;
};
void Dog::Cat::Modify(int a)
{
m_age = a;
}
int main()
{
Dog d;
d.ShowAge();
Dog::Cat c(&d);
c.Modify(123);
d.ShowAge();
system("pause");
return EXIT_SUCCESS;
}
输出:
100
123
设计意图:内部类是外部类的“一部分”,逻辑上应享有对父类的完全访问权(类似成员函数的权限)。
封装性:内部类通常用于实现外部类的细节(如迭代器、私有工具类),因此需要紧密协作。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。