嵌套类 一、 嵌套类 嵌套类的定义 将某个类的定义放在另一个类的内部,这样的类定义,叫嵌套类。 class AAA { int aaa; class BBB { int bbb; //其它成员或者函数 }; BBB b; public: AAA(void); ~AAA(void); }; 类AAA称为封装类,类BBB称为嵌套类。 二、嵌套类访问级别测试 1、封装类访问嵌套类成员。 2、封装类指针访问封装类成员测试。 3、封装类通过友元访问嵌套类成员测试。 三、嵌套类实例化对象 四、作业 尝试定义一个三层嵌套类成员的访问测试。 class AAA { int aaa; class BBB { int bbb; class CCC { int ccc; //其它成员 }; //其它成员 CCC *c; }; BBB *b; public: AAA(void); ~AAA(void); };
声明嵌套类
#pragma once class A { public: class B { friend A; public: int b; void showB(void) { printf("BBB"); } }; B *pb; A(void); ~A(void); };
在A类的构造函数中访问嵌套类B的成员
#include "StdAfx.h" #include "A.h" A::A(void) { this->B::b; //访问嵌套的方式 // this->B::b; 不能这样写A::B::b pb->b; } A::~A(void) { }
在A的实例对象中访问嵌套类成员
#include "stdafx.h" #include "A.h" int _tmain(int argc, _TCHAR* argv[]) { A aa; aa.pb->showB(); aa.B::b; // aa.B::showB(); return 0; }