函数,封装

1. 类

成员变量,成员函数,私有变量,私有函数

1. 设计圆类

测试圆类:

2. 设计学生类

测试学生类:

 2. 内联函数

1. 宏的缺陷

宏最好添加括号,如果添加了括号如例二还是会出现问题,宏函数没有作用域。

2. 内联函数

(1). 定义,没有inline关键字的函数不是内联函数

inline type function(type parameter){} 

(2). 可以解决宏定义的缺陷

(3). 内联函数和普通函数的区别

内联函数的确占用空间,但是内联函数比较普通函数的优势在于省去了函数调用时候的压栈,跳转,返回的开销,可以理解为内联函数是用空间换取时间

(4). 内联函数和编译器

c++的编译器对内联编译有一些显示,有些情况不考虑对函数进行内联编译

a. 不能存在任何形式的循环语句

b. 不能存在过多的条件判断语句

c. 函数体不能过于庞大

d. 不能对函数进行取址操作

内联仅仅是给编译器的一个建议,编译器不一定会接受这个建议,如果没有将函数声明为内联函数,那么编译器也可能对这个函数做内联编译,一个好的编译器会内联小的,简单的函数

4. 函数的参数

1. 函数的默认参数

函数的声明和实现只能有一个有默认参数。

2. 函数的占位参数

函数如果有占位参数,在调用这个函数的时候必须要提供这个参数

 c语言中没有默认参数和占位参数

 5. 函数的重载

1. 函数重载条件

在同一个作用域,函数的名称相同,函数的返回值必须相同

函数的参数不同,或者参数的类型不同,或者参数的顺序不同

2. 函数的重载遇到默认参数时,需要注意避免出现二义性

3. 引用的重载

 4. 函数重载的原理

不同编译器原理不同,在Linux环境下:

5. extern “C”浅析

c++语言中调用c语言方法中。

方法一:不需要包含头文件,extern "C" void show();

方法二:如果有多个代码时

c++代码中包含头文件

c语言的头文件中使用如下方式:

 6. C++的封装

1. c语言和c++封装的区别

c语言的封装,struct中不能有成员函数,将属性和行为分开处理了,类型检测不够

c++的封装:严格的类型检测,并且会将属性和行为放到一起

c++有控制权限:protected(保护权限) public (公共权限)private(私有权限),不加声明,默认是public

struct 和class除了默认权限不同,剩下的完全相同

protected:类的内部以及类的子类可以访问

class的默认权限是private,struct的默认权限是public

 2. 建议将成员属性设置为私有,使用接口对成员变量访问

 7. 面向对象设计案例

判断点和圆相对位置关系的案例

编写点类和圆类代码:

测试:

原文地址:https://www.cnblogs.com/feng-ying/p/10031421.html