C++ 考试知识要点

时间:2021-07-21
本文章向大家介绍C++ 考试知识要点,主要包括C++ 考试知识要点使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

考试知识要点

OOP = 继承(inheritance)+多态(polymorphism)+封装(encapsulation)

派生类中定义一个函数使之可以通过基类提供的接口进行统一调用,实现多态。当设计一个基类时,应当禁用它的拷贝构造函数和拷贝赋值操作。

public:所有类都可访问;protected:基类与派生类可以访问;private:只有基类自己可以访问。class默认访问访问限定符为私有,struct默认为公有。

有时,接口中的函数无法实现,需要的数据被隐藏在派生类中,必须保证派生类实现该函数,此时要设置纯虚函数,这是定义抽象接口的通常方式。如在基类中定义纯虚函数:virtual void func()=0,必须在派生类中实现它。一旦在基类中定义了纯虚函数,则该基类不能被实例化。纯接口通常没有数据成员和构造函数。

封装:把数据和函数合成一个整体,用类与对象(对象是类的实例)实现。把接口(类设计)和实现(编程)分离。

接口:通常数据成员被声明为私有,函数成员被声明为公有。公有函数集定义类的接口(interface)。

const函数声明:函数中访问类的数据成员只可以读取而不能修改。如float GetPrice()const。

构造函数:为数据成员分配存储空间并初始化每个对象的数据成员。不能声明为const。当新的对象被建立时,该对象所属的类的构造函数被自动调用,并且在该对象生命周期内只调用一次。只要构造函数时无参的或各参数均有默认值的,编译器都认为是默认的构造函数,并且只能有一个。

C++11支持在类的声明中初始化数据成员。数据成员声明的顺序决定了构造函数对其初始化的顺序。

引用作为函数的返回值,不生成值的副本。但返回值不能是函数中的局部变量,因为此时返回的局部变量地址已经失效。

聚合(aggregation):数据成员是类类型的对象。

派生类不继承构造函数和析构函数。

多态:编译时,重载实现(函数,运算符);运行时,通过类继承关系与虚函数实现。

虚函数:当一个类的成员函数被定义为虚函数,则由该类派生出来的所有派生类中,该函数始终保持虚函数的特性。如果在基类的函数中未加virtual,则被成为同名覆盖函数,不能实现运行时的多态性。静态成员函数不能作为虚函数。

如果有一个虚函数功能的类,则它需要一个虚的析构函数。如果一个派生类对象使用new来分配,并通过一个指向它的基类的指针来控制,那么它经常通过一个指向它的基类的指针来删除它。

动态内存分配在自由存储区(堆)中进行。

浅拷贝:默认复制构造函数,按成员的值复制。仅拷贝指针,因此两个指针可能指向同一个对象(指针和引用都存在此问题),存在同一资源多次释放的问题。

深拷贝:重新定义复制构造函数,拷贝指针及其指向的数据,给每个对象独立分配一个自由存储区。

引用:可以看作一种自动解引用的常量指针,或是对象别名。

原文地址:https://www.cnblogs.com/Jason404/p/15038274.html