在一個類體中定義的類叫作嵌套類。擁有嵌套類的類叫外圍類。
基本介紹
- 中文名:嵌套類
- 外文名:Nested Class
- 學科:計算機科學與技術
- 所屬類別:C++編程
定義
作用
使用示例
#include <iostream>using namespace std; class A{public: class B { public: B(char* name){ cout<<"constructing B:"<<name<<endl; } void printB(); }; B b; A():b("In class A"){ cout<<"constructing A"<<endl; }}; void A::B::printB(){ cout<<"B's member function"<<endl;} int main(int argc,char* argv[]){ A a; A::B b("outside of A"); b.printB();}
關係
- 嵌套類僅僅是聲明在外圍類內部的類型,而不是外圍類的成員
- 外圍類不具備嵌套類所定義的成員
- 對於外圍類來說,嵌套類和其他的類沒有任何區別;外圍類能訪問嵌套類對象的public成員,不能訪問嵌套類對象的protected及private成員
- 嵌套類不具備外圍類所定義的成員
- 嵌套類能訪問外圍類的public成員,不能訪問外圍類的protected及private成員
- 無論嵌套類聲明為public、protected還是private,嵌套類對於外圍類任何成員可見
- 當嵌套類在外圍類中聲明為public時,對外圍類之外的作用域可見,外圍類之外的作用域可通過“::”訪問嵌套類;