7.13 面向对象

来源:互联网 发布:淘宝drjart天猫旗舰店 编辑:程序博客网 时间:2024/06/06 21:04

1.面向对象的基本特征

封装,继承,多态。

高内聚,低耦合。


2.深拷贝和浅拷贝

主要是:浅拷贝只是单纯值的复制,而深拷贝对于指针的拷贝比较谨慎,会单独申请一块内存存储,不会简单把两个指针指向同一个内存地址。

这块可以复习智能指针。 


3友元

本质是破坏了封装性的函数,类。可以访问类的私有成员。

注意的是:类与类的友元关系不能继承。调用友元函数时,要在实参中给出相应的对象。友元函数不能访问类的成员,只能访问对象成员。


4.复制构造函数和赋值运算符的区别

构造函数是建一个对象。在初始化前不用检查新建对象和源对象是否相等。

赋值运算符是建立一个对象后进行位复制。需要检查是否相等,还会在赋值时,进行释放内存等操作。


5.构造函数和析构函数不能被派生。

构造函数的顺序:先基类,按基类继承顺序,然后按成员变量的声明顺序,最后自己。

静态成员变量先于实例变量, 父类先于子类。

变量初始化顺序:

1.基类静态变量或全局变量

2.派生类的静态变量或全局变量

3 基类的成员变量

4.派生类的成员变量。

析构顺序相反。


6.初始化列表和在函数体内初始化

在初始化列表使用构造函数直接构造,在函数体内还要再调用赋值操作符函数,推荐在初始化列表。

而且有些const成员必须在定义时初始化。


7.C++空类默认的成员函数

默认构造函数,复制构造函数,析构函数,赋值运算符重载函数,取地址重载函数,const取值运算符重载函数。

如果不想让外界构造A类对象,只想构造A的子类B的对象,把A的构造函数写为protected。


8.public,protected,private

public:权限不变传递给派生类,派生类不可访问基类private成员。

protected:public和protected都在派生类变为protected,private依然不可见。

private:public和protected都变为private在派生类,下一代继承将不可见。


9.C++默认参数的函数

在函数声明时,写参数默认值。

默认参数从右向左。因为传入参数的内存是从低向高,从左往右。








0 0
原创粉丝点击