c++-嵌套类与局部类

来源:互联网 发布:杭州淘宝培训哪家最好 编辑:程序博客网 时间:2024/05/15 22:20

嵌套类:类中有子类,对私有成员相互没有访问权限

注意:

嵌套类的成员函数可以在类的外部定义

嵌套类的成员函数对外部类的私有成员没有访问权限,反之亦然

嵌套类仅仅只是语法上的嵌套。意思是说两个类实际上是平等关系

局部类:在函数的内部定义类,

注意:

不能有static成员,只能在函数的内部使用

局部类成员函数必须定义在类体内

下面看一个嵌套类的例子:

#include <iostream>using namespace std;class Outer{public:class Inner{public:void fun();  //可以在类体外定义};void fun(){cout<<"Outer"<<endl;in.fun();}private:Inner in;};void Outer::Inner::fun(){cout<<"Inner"<<endl;}int main(){Outer out;out.fun();   //Outer  InnerOuter::Inner in;     //如果嵌套类为private是不对的in.fun();     //Innerreturn 0;}


下面看一个局部类的例子:

#include <iostream>using namespace std;void fun(){class localclass{//static int a;  //error ,不能定义static成员,因为static是在全局初始化的,在全局又反问不了函数内的类,所以编译不通过public:void fun()//只能在类体内定义{cout<<"local class"<<endl;}//void fun1();};/*void localclass::fun1() //error,不能再类的外定义成员函数{cout<<"fun1"<<endl;}*/localclass l;l.fun();}int main(){// localclass l1;   //不能在函数外部使用类,因为函数在调用的时候才会运行代码,不调用连里面是什么内容都不知道fun();}


 

0 0
原创粉丝点击