
复习与补充
static关键字:
静态成员变量
1. 类内声明,类外初始化
2. 所有对象共享一份数据
3. 空间的开辟与释放 和 对象的创建或销毁没有任何关系. 是在初始化时开辟空间.
4. 可以使用类名访问。类名::静态成员 。
静态成员函数
1. 所有对象共享一个函数.
2. 静态成员函数内部只能访问静态成员变量, 不能访问非静态成员变量.
注:与非静态成员函数的区别在于没有this指针.
const关键字:
常成员函数
语法:将 const 添加到成员函数的末尾 void fun() const {}
函数内部不能出现修改成员变量的 *** 作.
原理:原本this类型:Class * const this; 加const修饰后:const Class * const this;
常对象
表示对象中的成员属性不能改变.
在实例化对象前加以const修饰: const class obj;
常对象只能访问常成员函数,因为其他函数可能出现修改.
运算符重载
不能重载的运算符:
今日分享内容
一、友元
1.关键字:friend
意义:使某些 函数 或 类 可以直接访问其他类的私有成员
2.全局函数做友元
在需要访问的类里面进行函数声明就可以了,声明前面加一个friend.
例如:
class A
{
friend void fun(int _n1);public:
};void fun (int _n1)
{
}
int mian(int argc, char *argv)
{
return 0;
}
3.类做友元,也叫友元类
用法:在需要访问的类里面进行友元类声明就可以了,声明前面加一个friend.
1.方法一:
class A
{
friend class B;
};2.方法二:
class B;
class A
{
friend B;
};
类成员函数做友元
制定部分成员函数作为友元
二、继承
当定义一个新的类时,发现该类具备之前某一个类的基本属性及方法时,就可使用继承技术.
意义:减少代码重复率
语法:
class A: <继承权限> <类名>, <继承权限> <类名>
{
}例如:
class A: public B, public C
{
}
1.在继承关系中:被继承的类称为 父类(基类) , 继承后的类称为 子类(派生类)
实例化一个子类时,需要先构造父类,再构造子类,析构顺序相反.
注意:
2.如果子类出现与父类同名的成员属性,父类的属性将被隐藏,所以子类对象直接访问的话,访
问的是自己的. 当然可以指定访问父类属性.
继承权限
注意:private权限的属性,任何继承方式都不能在子类中访问.
public:父类中public属性,protected属性,被继承后在子类中的权限和以前父类中的一样.
class A
{
public:
int dataA1;
protected:
int dataA2;
};
class B:public A
{
//继承后的dataA1 在子类里也是public权限.
//继承后的dataA2 在子类里也是protected权限.
};
protected:父类中public属性,protected属性,被继承后在子类中的全部变成protected权限.
private: 父类中public属性,protected属性,被继承后在子类中的全部变成private权限.
注意:private权限的属性,有被子类继承,但是访问被编译器屏蔽,因此访问不了
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)