友元函数和友元类
-
友元:C++提供了一种机制,可以让一个类访问另外一个类的私有成员
-
友元有三种形式
普通函数作为类的友元函数: 该函数可以直接通过对象调用私有成员
语法格式: friend 函数声明;
友元类:一个类可以访问另外一个类的私有成员
语法格式:friend class 类名;
特点:
第一:友元不可以继承,父类是友元类,子类不是友元类
第二:友元不能传递, A是B的友元类,C是A的友元类,不能得到结论C是B的友元类
第三:友元破坏了类的封装
第四:友元不满足交换律, A是B的友元类,你不能说B也是A的友元类类的成员函数作为另外一个类友元:
注意注意注意:写法很特别,很容易写错
模板函数和模板类(泛型编程)
-
引入模板:
C++把数据类型抽象为模板,作用提供了一种通用的数据类型
泛型编程:代码中使用了模板这种技术,这样编写的代码称之为采用泛型编程
泛型:通用的类型 -
语法规则
声明一个模板 template //声明了一个模板,名字叫做T
模板不可以共用,每个模板函数,每个模板类都必须单独声明模板 -
模板函数(函数模板) --》数组指针(指针数组)
定义: 一个函数只要使用了模板,该函数就叫做模板函数
模板实例化