C++关键技术总结(4)

发布时间:2021-06-06

C++关键技术总结

{

cout << "destructing " << sname << endl;

delete[] sname;

sname = NULL;

}

protected:

char *sname;

};

int main()

{

student p1("wang");

student p2(p1);

return 0;

}

在VC下编译能通过,但是在运行时出错了。但是在linux环境下,g++编译和运行都正确。我估计在VC下都当成浅拷贝了。

6、 析构函数

一个类只能有一个析构函数,没有参数,没有返回值,用户可以自己定义析构函数,也可以使用编译系统生成的默认析构函数。

析构调用过程是构造顺序的逆过程。最先构造的对象,最后析构。

由于析构函数不能带参数,故一个类中只能有一个析构函数。一般来说,如果一个类中定义了虚函数,析构函数也应定义为虚析构函数,其主要用来完成对象消亡之前做一些清理工作,比如释放内存等。

一般情况下类的析构函数作用是:释放内存资源,而此析构函数不能被调用的话会造成内存泄漏。此时将析构函数定义为虚函数就特别重要。

7、 成员初始化列表及初始化

在进行含有对象成员的类对象的初始化时间,首先按照类定义对象成员的顺序来分别调用各自的对象成员所对用的构造函数,然后再执行该类自己定义的构造函数。

8、 继承

子类继承父类之后,如果修改了父类的方法,在调用父类的方法的时候,要使用(子类的对象).父类名::(方法名)来调用。

#include <iostream>

using namespace std;

class Base

{

public:

void fun()

{

cout << "In Base" << endl;

}

};

class Pai: public Base

C++关键技术总结(4).doc 将本文的Word文档下载到电脑

精彩图片

热门精选

大家正在看

× 游客快捷下载通道(下载后可以自由复制和排版)

限时特价:7 元/份 原价:20元

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219