函数
-
内联函数
c++作为一种非常讲究效率的语言,面对内容短小、会被频繁调用的函数,采取了 内联函数 的机制,以减少编译器在处理 内联函数的调用 时花费的时间。
具体来说,就是用函数代码代替调用语句。//在函数定义前添加inline关键词 inline int Max(int a,int b) { if (a>b) return a; return b; }
当Max函数被调用时,
x=Max(n1,n2);
会被转化为if(n1>n2) tmp=n1; else tmp=n2; x=tmp;
- 函数重载
“参数不同但功能近似的同名函数”
优点:程序设计者在命名函数时更简单
编译器可以根据具体的参数个数or类型,选择合适函数被调用
示例:
结果为int Max(int a,int b){} int Max(int a,int b,int c){} int Max(double a,double b){} //三个函数的输出标识不同 int main() { Max(2,3); Max(4,5,6); Max(2.1,3.4); return 0; }
注意:如果两个函数名相同,且参数类型相同,则属于“重复定义”the bigger in 2 int is: 3 the max in 3 int is: 6 the max in 2 double is: 3.4
- 缺省参数
函数可在最右侧连续缺省(可以在调用时不引入参数)
优点:程序可扩充性upup 为写好的函数增加参数,可以不修改调用语句
类和对象
-
区别
c语言是标准的 结构化程序,随规模增加,程序更难以理解,变得混乱难以查错,难以抽取部分代码 重用
c++ 属于 面向对象程序,引入 封装 & 隐藏 ,解决上述问题,(具有抽象,封装,继承,多态 的基本特点)归纳事物共同特点,形成数据结构
归纳事物可进行的行为,形成函数封装: 捆绑数据结构和函数,形成类(带函数的结构)
通过 类 定义出的变量is对象
对象仅包含成员变量,不包含成员函数
对象可以用“=”赋值,但是不能进行比较,除非有符号重载范围关键字:(在定义时说明类成员可被访问的范围)
关键词 | 成员 | 可被访问范围 |
---|---|---|
private | 私有成员 | 成员函数 |
public | 公有成员 | 任何地方 |
protected | 被保护 | / |
```
class ClassName
{
private:(默认)
私有属性和函数
public:
公有成员,任何地方
protected:
被保护
}
```
一个类私有成员不能在类的成员函数外部进行访问
设置私有成员这种机制,就叫隐藏
只能通过成员函数访问某些变量
-
构造函数
与类 同名
对象is房子,构造函数is装潢对象在生成时一定会调用构造函数。没有指定构造函数的话,编译器会自动生成一个 默认 构造函数(不需要参数并且有一个空体)。