C+学习日记 Day3

设计类、求圆的周长

关键字 class

class + 类名

{

属性 :

行为:

}

类的构成 : 成员函数 + 成员属性

作用域 public :公共作用域

测试:

给对象赋值

内联函数

内联函数的引出

宏函数必须保证运算完整性,加括号

宏函数即使加括号,有些情况依然和预期不符合

宏函数也不重视作用域

内联函数 inline

函数声明和实现必须同时加inline  才算内联函数

类内部成员函数  编译器默认前面加了inline关键字

内联函数和编译器关系

加入内联后只是对编译器的一个建议,有些情况编译器依然不会按照内联方式 处理

一个好的编译器,会将短小的函数 隐性的加入inline关键字

(正常调用函数需要用到栈开辟空间保存主函数信息,然后执行子函数,而内联函数拥有了宏函数的优点:短小的函数不需要调用子函数,而是把调用它的地方直接替换)

函数的默认参数以及占位符

默认参数

在形参后面 = 默认值

如果参数列表中 有一位置有了默认参数,那么从这个位置从左到右都必须有默 认参数

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

占位参数

函数参数列表中(int)只写类型,调用必须要传入参数调用

占位参数也可以有默认参数(int = 0)

占位参数在符号重载会用到

函数重载

满足条件

同一个作用域,函数名称相同

函数参数、类型、个数、顺序不同

函数的返回值不同 不可以做为重载条件

引用 加入const 和不加 const也可以作为重载条件

函数重载遇到函数默认参数  避免二义性

C++中允许同名但是参数不同的函数存在,使用时根据传递的参数确定使用那个函数

extern C浅析

函数重载原理  C++编译器在底层会将函数名字进行修饰,方便内部访问

用途 : 在C++下运行C语言文件

#ifdef __cplusplus

extern “C”{

#endif

//中间是C语言代码

#ifdef __cplusplus

}

#endif

类的封装

C语言的封装

缺点1:C语言下没有做类型转换的检测

缺点2:将属性和行为分开

C++封装

将属性和行为作为一个整体,来表现生活的事物

将这些成员  加以权限控制

权限

piblic 公共权限

protected 保护权限

private 私有权限

C++中strcut 和 class区别

strcut 默认public权限

class 默认private权限

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200929A000BD00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券