嵌入式培训机构四个月实训课程笔记(完整版)-C++和QT编程第二天-类与对象(物联技术666)

这篇具有很好参考价值的文章主要介绍了嵌入式培训机构四个月实训课程笔记(完整版)-C++和QT编程第二天-类与对象(物联技术666)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

链接:https://pan.baidu.com/s/1Am83Ut449WCbuTiodwJWgg?pwd=1688
提取码:1688

上午:类和对象  

下午:类和对象高级应用

教学内容:

1、构造函数\析构函数\拷贝构造函数

构造函数:

每一个对象的创建都必须初始化,如果在没有写初始化函数(即构造函数),系统会默认写构造函数,但有些时候必须自己写构造函数。(比如,在定义初始化时候要申请空间或者牵涉指针)

构造函数的特点:

构造函数具有一些特殊的性质

• 构造函数的名字必须与类名相同

• 定义对象时被系统自动调用

• 可以有任意类型的参数,但不能有返回值

• 被定义为公有的,但其它时间无法被调用

例如:

//*****************************************

class Complex{

private:

       double real;

       double imag;

public:

       Complex(double a=10, double b=10)//构造函数,与类同名,无返回值,同时可以缺省使用

       {    

             real = a;

             imag = b;

             cout<<"In Constructor t!"<<endl;

       }

       ...

};

//**************************

析构函数:

每一个对象在结束的时候,系统必须收回空间,收回空间由析构函数来完成,如果在类中没有析构函数,系统默认自己写析构函数。有些时候必须自己写析构函数(比如,在定义初始化时候要申请空间或者牵涉指针)

析构函数有以下一些特点:

• 析构函数与构造函数名字相同,但它前面必须加一个波浪号(~)

• 析构函数没有参数,也没有返回值,而且不能重载,因此在一个类中只能有一个析构函数

• 当撤消对象时,编译系统会自动地调用析构函数

例如:

//******************************************

class Complex{

private:

       double real;

       double imag;

public:

       Complex(double r = 0.0,double i = 0.0)        //构造函数,有缺省设置

       {

             cout<<"construction…"<<endl;

             real = r;

             imag = i;

       }

       ~Complex()  //析构函数,没有返回值,没有参数,前面加~,对象在接收时自动调用

       {

             cout<<"destruction…"<<endl;

       }

...

}

//****************************

拷贝构造函数:

在程序中,如果对象赋值,在类中如果没有拷贝构造函数,编译器会自动编写拷贝构造函数,但是如果在有指针或有申请空间的类中,直接拷贝会出现,二个对象指向同一个空间的问题,可能会出现双释放空间,从而产生段错误。

自定义拷贝构造函数

classname(const classname &ob) //classname类名称

{

//拷贝构造函数的函数体

}

例如:

//********************************

class StringData

{

private: char *str;

publie:

StringData(char *s)      //构造函数

{

str = new char[strlen(s)+1];

strcpy(str,s);

}

~StringData()       //析构函数

{

delete str;

}

//…

};

int main()

{

StringData x(“abc”);     //重新创建一个对象

StringData y(x);     //StringData y = x;         

//拷贝一个对象,所有东西都拷贝了,此时对象y的str指针指向x对象new的空间ÿ文章来源地址https://www.toymoban.com/news/detail-789696.html

到了这里,关于嵌入式培训机构四个月实训课程笔记(完整版)-C++和QT编程第二天-类与对象(物联技术666)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包