700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 侯捷-C++面向对象高级开发(头文件与类的声明 构造函数 参数传递与返回值)

侯捷-C++面向对象高级开发(头文件与类的声明 构造函数 参数传递与返回值)

时间:2024-06-10 10:55:48

相关推荐

侯捷-C++面向对象高级开发(头文件与类的声明 构造函数 参数传递与返回值)

侯捷-C++面向对象高级开发

1.头文件与类的声明

Object Based:面对的是单一的class的设计

Object Oriented:面对的是多重classes的设计,classes和classes之间的关系

Classes的两个经典分类:

Class without pointer members(s)

​ complex

Class with pointer member(s)

​ string

数据一般放在private,函数一般放在public,如果函数只想在类内部访问则页private

2.构造函数

构造函数用来创建对象

构造函数可以有多个—overloading(重载)

同名函数可以同时存在,在编译器看来不重名上图中后两个函数

重载常常发生在构造函数

上图第一二个构造函数在这里不能同时存在,可以写其他的构造函数

如果放入构造函数放入private

那么不允许外部创建对象

上图private中有两个构造函数。

单例模式,每个只能创建一个对象

3.参数传递与返回值

类中有两类函数,对于不会改变数据的函数加上const

上图右侧使用者认为不会改数据,而如果类中如果不加const那么类中实际上数据可以改,两者矛盾

值传递是将整个传过去,double四个字节就把四个字节的内容传过去。

我们尽量不要pass by value,传引用就相当于传指针,比较快

注意传引用改了后者前者也会跟着改变

如果我们为了速度并而且知道后者不会改进而不会影响前者,那么pass by reference to const,如果更改了那么编译就会出错

返回值的传递也应该尽量引用传递

正常从类外面不能拿private的数据,但是通过朋友可以直接拿数据

总结来说,当我们写一个类

数据写在private中尽量用引用传递参数和返回值,是否加const依据实际情况而定在类中的函数对于不会改变数据的函数加上const,如果不加使用者用时可以会报错注意构造函数的initialization list

对于函数内的运算结果有两种处理情况,一种是存到传进来的参数中,一种是定义一个局部变量来存运算结果。

对于定义一个局部变量存运算结果的情景不能用返回引用,因为局部变量函数用完它后它的生命周期就会结束,因此传出去的引用那块内存空间也会被释放

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。