第二课:类与对象(内联函数、成员函数重载、类与结构体、this指针)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_30278319/article/details/79190375

内联函数:

优点

提高效率; 在编译时直接将代码嵌入到调用的地方,减少函数调用的开销;(调用开销:接连系统堆栈,保护现场,将参数压入栈中,控制程序跳转)

缺点

程序体积增大,以空间换时间;

特点

程序相对短小,仅仅是给编译器提示。如果函数中有 switch、for等,编译器可能不会以内联方式来解析;

内联成员函数

类中的成员函数也可以做成内联。
实现方法:
① 在函数实现时候给出关键字 inline,即 类.cpp文件内。
② 直接在类体内部实现函数,即 类.h文件内,不必添加inline 关键字。

成员函数的重载及其缺省参数

函数重载的前提:相同的作用域;成员函数即在类的作用域中重载。
缺省值 : 添加在声明中;

类与结构体

唯一区别(一个默认私有,一个默认公有):

CLASS :默认私有; 类初始化: 如果成员全声明为public,则既可以像C语言结构体初始化一样,对每个内部变量赋值,又可以通过调用初始化来初始化;C语言结构体初始化
struct : 默认公有; (C++结构体可以有函数成员) 结构体初始化 :既可以像C语言一样,对每个内部变量赋值,又可以通过内部添加初始化函数,外部调用来初始化;

隐含的this指针

成员函数有一个隐含的附加形参(编译器),即指向该对象的指针,即this指针;如果手动加上,编译器不会报错;
这里写图片描述
类的成员函数:只读代码,所有对象共享;
数据成员:每个对象都拥有自己的一套;
this指针保证了每个对象拥有不同的数据成员,但处理这些成员的代码(成员函数)可以被所有对象共享;

猜你喜欢

转载自blog.csdn.net/qq_30278319/article/details/79190375
今日推荐