C++ 复习一

C++ 复习一

1.namespace 命名空间

1.1 用途:解决命名冲突

1.2 命名空间只能放在全局作用域下

1.3 命名空间可以嵌套,且随时可以添加新成员

1.4 命名空间可以匿名(static)并可以起别名

2.Using

2.1 using声明 using xxx::xxx1

2.1.1就近原则,需要避免二义性

2.2 using编译 using namespace xxx

2.2.1 有就近原则,优先就近原则

3.C++对于C的语言增强

3.1 全局变量检测增强

3.2 函数检测增强(返回值,调用时传参检测)

3.3 类型转换检测增强

3.4 C++ struct增强

3.4.1 C下必须声明struct关键字
3.4.2 C++结构体里可以写函数

3.5 C++下含有bool类型

3.6 三目运算符增强(a==b?a:b) C三目运算符返回值 c++返回的是变量

3.7 const增强(修改语法正确,全局运行报错)

3.7.1 C全局const不可以修改 局部的const可以间接修改
3.7.2 C++全局同上,局部运行通过,但修改不成功
3.7.3 C下const默认外部连接属性 c++默认内部连接属性(必须添加extern关键字提升作用域)

4.const内存分配

4.1 对const修饰的变量取地址时分配临时内存

4.2 const前加入extern关键字也会分配内存

4.3 使用变量初始化const修饰的变量(局部const int x=a 间接可以修改x)

4.4 对于自定义的数据类型,也会分配内存(局部分配内存的都可以间接修改)

5.尽量用const代替define

5.1 const有作用域,define不重视作用域(undefine卸载)

5.2 const有类型,可以进行安全检测

6.引用的使用(Type &别名 = 原名)

//本质是一个指针常量(type* const x )所以必须初始化

6.1 引用是给一个内存空间起别名

6.2 引用必须初始化,一旦初始化后不能修改其指向

6.3 不能返回局部变量的引用

6.4 如果函数的返回值是一个引用,可以用来做左值

6.5 通过引用可以简化指针(简化二级指针)

6.6 常量引用(const &a)的使用,修饰函数中的形参,防止误操作

7.参数传递(值传递不能修改参数本体)

8.内联函数inline

8.1 内联和宏一样,在特定位置展开,没有调用函数的开销(入栈出栈)以空间换时间

8.2 类内部的函数前面默认都有inline

8.3 加入内联函数只是对编译器的建议,可能不采用(太大,循环,过多判断,对函数取址),

好的编译器会将短小函数加入内联关键字

9.函数默认参数

9.1 函数参数列表中,某一个位置有默认参数,其从左到右都必须有默认参数

9.2 杉树的声明和实现只能有一个有默认参数

10.函数重载(c++编译器对函数名称作二次修饰)

10.1 作用域相同,函数名称相同,函数参数类型或个数或顺序不同(返回值不能作为重载条件)

10.2 函数重载遇到默认参数易发生二义性

10.3 引用(加const(int a=1;test(a))和不加(test(1))也可作为条件)

11.extern “C” 在c++下可以运行c(不能运行因为重载原因)

在C文件中加入
#ifdef __cplusplus
extern "C"{
    #endf
    ........
    #ifdef __cplusplus
}
#endf

12.类的封装(将属性和行为作为一个整体,表示生活中的事物)

12.1 类(class)默认权限private,而结构体(struct)默认public

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值