C++第五篇(接上篇)

C++第五篇(接上篇),第1张

复习与补充

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权限的属性,有被子类继承,但是访问被编译器屏蔽,因此访问不了

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/langs/2889707.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-09-14
下一篇2022-09-14

发表评论

登录后才能评论

评论列表(0条)

    保存