欢迎来到天天文库
浏览记录
ID:9971936
大小:1.20 MB
页数:29页
时间:2018-05-12
《嵌入式linux下c++程序设计--04-2类与对象(下)this指针,const与static成员,类的复合,友元,模板》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、嵌入式Linux下QT程序设计主讲:成宝宗主要内容:This指针Static成员Const成员类的组合友元模板This指针this指针的使用:一种情况就是,在类的非静态成员函数中返回类对象本身的时候,直接使用return*this;另外一种情况是当参数与成员变量名相同时。如this->n=n(不能写成n=n)5静态成员静态成员用于解决同一个类的不同对象之间的数据和函数的共享问题。静态数据成员用关键字static声明该类的所有对象维护该成员的同一个拷贝必须在类外定义和初始化,用(::)来指明所属的类。静态成员函数类外代码可以使用类名和作用域操作符来
2、调用静态成员函数。静态成员函数只能引用属于该类的静态数据成员或静态成员函数。32Const对象常对象使用const关键字声明的对象称为常对象。常对象的声明形式如下:const<类名><对象名>或<类名>const<对象名>声明常对象的同时,也要进行初始化,而且该对象以后不能再被更新。Const成员函数常成员函数使用const关键字声明的函数称为常成员函数。常成员函数声明的形式如下:<类型标识符><函数名>(参数表)const;说明:①const是加在函数声明后面的类型修饰符,它是函数类型的一个组成部分,因此,在实现部分也要带const关键字。②c
3、onst关键字可以被用于对重载函数的区分。例如,可以在类中这样声明:voidfun();voidfun()const;③常成员函数不能更新对象的数据成员,也不能调用该类中没有用const修饰的成员函数。④如果将一个对象说明为常对象,则通过该对象只能调用它的常成员函数,而不能调用其它成员函数。Const数据成员常数据成员使用关键字const不仅可以说明成员函数,还可以说明数据成员。如果在一个类中说明了常数据成员(包括常引用、常对象等),由于常数据成员不能被更新,因此,在类中说明常数据成员时,只能用成员初始化列表的方式通过构造函数对该数据成员进行初始
4、化。类的组合ClassA{private:…public:…};其中,B类中的数据成员a就是一个A类的对象,称之为对象成员。在定义一个类时,其数据成员既可以是简单类型,又可以是自定义类型,还可以是类的对象。这样,我们定义类时,就可以利用已定义的类来构成新类,由若干结构简单、易于实现的类来构造复杂的类。这种类似于部件组装的方法,不仅简化了问题的描述,而且有利于提高软件的开发效率,也是软件复用的一种形式。ClassB{private:Aa;…public:…};对组合类,当创建该类的对象时,其中包含的各个对象成员也将被自动创建。故该类的构造函数应包含
5、对其中对象成员的初始化。通常采用成员初始化列表的方法来初始化对象成员。在成员初始化列表中,既包含对对象成员的初始化,又包含对本类中其它的基本数据成员的初始化。类的组合类的组合#includeclassA{private:inta1,a2;public:A(inti,intj){a1=i,a2=j;}voidprint(){cout<6、voidB::print(){a.print();cout<7、类对象的一般数据成员b也可用此方式初始化其值为k。类的组合事实上,当建立一个组合类对象时,它所包含的所有对象成员也一同被建立。当所有的对象成员被构造完毕之后(即它们所在类的构造函数被执行完),该对象的类的构造函数体才被执行。析构函数的执行顺序与构造函数刚好相反。另外要注意,各个成员对象的构造函数的调用次序与这些对象成员在类中的声明次序一致,而与成员初始化列表中给出的构造函数的次序无关。类的组合综上所述,下面给出组合类构造函数定义的一般形式:<类名>::<类名>(形参表):对象成员1(形参表),对象成员2(形参表),…{类的初始化程序体}其中,构造8、函数冒号后的部分:“对象成员1(形参表),对象成员2(形参表),…”称作成员初始化列表,用于完成对组合类中所包含的对象成员的初始化。该表
6、voidB::print(){a.print();cout<
7、类对象的一般数据成员b也可用此方式初始化其值为k。类的组合事实上,当建立一个组合类对象时,它所包含的所有对象成员也一同被建立。当所有的对象成员被构造完毕之后(即它们所在类的构造函数被执行完),该对象的类的构造函数体才被执行。析构函数的执行顺序与构造函数刚好相反。另外要注意,各个成员对象的构造函数的调用次序与这些对象成员在类中的声明次序一致,而与成员初始化列表中给出的构造函数的次序无关。类的组合综上所述,下面给出组合类构造函数定义的一般形式:<类名>::<类名>(形参表):对象成员1(形参表),对象成员2(形参表),…{类的初始化程序体}其中,构造
8、函数冒号后的部分:“对象成员1(形参表),对象成员2(形参表),…”称作成员初始化列表,用于完成对组合类中所包含的对象成员的初始化。该表
此文档下载收益归作者所有