我在社区内外阅读了一些关于嵌套类的帖子,我很困惑。
据我了解,在C++ 中,嵌套类与单独/独立的类没有任何不同。
当我试图更好地理解 conecpt 时,我编写了一个简单的代码,我发现内部类可以访问外部类而无需与外部类建立友谊。
例如:
class Outer {
private : // default access modifier
int x;
static int sx;
public:
class Inner {
public:
void changeOuterDataMemberValues(int value) {
sx = value; // changes the private static data member of Outer.
Outer out;
out.x = value; // changes the private data member via object (not via class!)
}
void printMyOuterDataMember() {
cout << sx; // prints the private data member of Outer.
}
};
};
class Lonesome {
void tryingToChangeDataMemberValue(int value) {
Outer::sx = value; // cannot change the private static data member of Outer.
}
};
int Outer::sx;
您可以看到嵌套在 Outer 类中的 Inner 类可以访问其(Outer 类)数据成员,而 Lonesome 作为独立类无法访问 Outer 类数据成员。
如果这是一个重复或愚蠢的问题,我深表歉意,但我只想与你们确认嵌套类和独立类(两个没有内部/外部关系的不同类)之间存在差异。
谢谢大家,辛迪加=]