C++面象对象编程Tips之一

Posted 编程高手训练营

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++面象对象编程Tips之一相关的知识,希望对你有一定的参考价值。

Tips 1. C++面象对象知识点





Tips 2. 类成员访问限定级别

访问限定级别

类成员函数

派生类成员函数

友员函数

其它函数

private

可以访问

不可访问

可以访问

不可访问

protected

可以访问

可以访问

可以访问

不可访问

public

可以访问

可以访问

可以访问

可以访问

 

Tips 3. 构造函数、析构函数无定返回类型

无返回类型,表示不能指定返回类型,即使指定为void也不行。 


Tips 4. 构造函数、析构函数调用时间

构造函数、析构函数由编译器自动调用,构造函数在定义对象变量或执行new 操作时调用;析构函数在变量的生存期结束或执行delete 操作时调用。例如:
void func() { ClassA obja; // 调用构造函数初始化obja    ClassA *objb =new ClassA;  //调用构造函数 { ClassA objc; // 调用构造函数初始化objc //…… // 此处调用对象objc的析构函数 } delete objb; // 此处调用指针objb的析构函数 // 此处调用对象obja的析构函数}

 

Tips 5. 如果类以后可能会被继承,析构函数要定义成虚函数

子类在析构时,会自动调用父类的析构函数。当通过父类变量(或指针、引用)保存子类对象时,如果析构函数不是虚函数,子类的析构函数不会被调用。

 

Tips 6. 多态

子类对象可以赋值给父类变量,即可以通过父类变量(或指针、引用)访问子类对象。通过父类变量(或指针、引用)调用虚成员函数时,能够正确调用到子类的虚成员函数。这种情况下,要调用的成员函数是在运行时确定的,称为动态绑定。
【注】通过父类变量(或指针、引用)调用非虚成员函数时,访问的父类的成员函数。

 

Tips 7. 纯虚函数

当一个类中定义了纯虚函数时,该类不能被实例为,只能作为父类被继承。
在虚函数的声明后面加上“= 0 ”,则该函数为纯虚函数。纯虚函数只有声明,没有函数定义。例如:
virtual void draw() = 0;


Tips 8 deletedelete[]的区别


通过new 操作申请内存时,调用delete 操作释放内存;当通过new [] 操作申请内存时,调用delete[] 操作释放内存。例如:
obja = new ClassA[10];obj = new ClassA;//……delete obj;delete[] obja;

如果调用delete 释放obja ,只有obja[0] 的析构函数会执行,其它元素的析构函数不会执行。


以上是关于C++面象对象编程Tips之一的主要内容,如果未能解决你的问题,请参考以下文章

面象对象

面象过程与面象对象

面象对象设计6大原则之二:开放封闭原则

1/多态的应用...

VSCode自定义代码片段——JS中的面向对象编程

VSCode自定义代码片段9——JS中的面向对象编程