目录
1.友元函数
1.定义
2.注意
2.友元类
1.定义
3.内部类(Java喜欢用,C++不怎么用)
1.定义
特性:
1.友元函数
1.定义
1.友元函数可访问类的私有和保护成员,但不是类的成员函数。
2.友元函数不能const修饰
3.友元函数可以在类定义的任何地方声明,不受类访问限定符限制
4.一个函数可以是多个类的友元函数
5.友元函数的调用与普通函数的调用函数原理相同
2.注意
1.要注意的是,他还是不会像成员函数一样调用的,因为成员函数有一个隐形的参数 [自定义类型名]& this 或则 const [自定义类型名]& this , 所以要想调用,那肯定是要传一个自定义的形参的,或则是static,静态成员变量,就不需要了,因为他和友元函数一样,是不属于每一个类特有的,而是共有的(我自己理解的哈,不是专业名词)
2.友元类
1.定义
友元类的所有成员函数都可以是另一个类的友元函数,都可以访问另一个类中的非公有成员。
1.友元关系是单向的,不具有交换性。
2.友元关系不能传递。(如果C是B的友元,B是A的友元,则不能说明C是A的友元)
3.友元关系不能继承。
3.内部类(Java喜欢用,C++不怎么用)
1.定义
1.如果一个类定义在另一个类的内部,这个内部类就叫做内部类。内部类是一个独立的类,它不属于外部类,更不能通过外部类的对象去访问内部类的成员。外部类对内部类没有任何优越的访问权限。
注意:内部类就是外部类的友元类,参见友元类的定义,内部类可以通过外部类的对象参数来访问外部类中的所有成员。但是外部类不是内部类的友元。
特性:
1.内部类可以定义在外部类的public、protected、private都可以的。
2.注意内部类可以直接访问外部类中的static成员、不需要外部类的对象/类名。
3.sizeof(外部类) = 外部类, 和内部类没有任何关系。