c++增强

1. 双冒号运算符: 代表作用域   ,如果前面没有变量代表全局作用域         列如 cout是std下的    而 a 是全局的输出  10

#include<iostream>
int a = 10;
int main(void) {
	int  a = 5;

	std::cout << ::a << std::endl;
	return 0;                }

2.  namespace 使用:

  如果都导入一下两个文件,那么函数 goAtk就会不知道用哪一个,所以在使用时  加上   LOL :: goATk()

1.h 文件下的函数
namespace LOL {
	void goAtk();
}

2.h下的函数
namespace W {
	void goAtk();
}

2.1命名空间下可以放 函数  变量  结构体 类 (必须定义在全局的作用域下)   2.2命名空间可以嵌套  2.3可以往命名空间添加新数据2.4 无名命名空间 : 相当于  static int a = 10  ;    static int a = 20  ;   只能在当前文件使用       2.5命名空间可以起别名

namespace  {
	int a = 10;
	int b = 20;            }

3.using 关键字

   1. 代表使用wyc命名空间下的 a变量,   如果函数类取消注释报错,  因为不知道采用就近还是定义的空间的     二义性

   2.如果只是  using  namespace wyc ;      这样只是打开了命名空间,不会冲突,  输出采用就近原则   30

   3.如果打开多个空间也要考虑二义性

int a = 20;
namespace  wyc{
	int a = 10;            }
int main(void) {
	//int a = 30;
	using wyc::a;
	cout << a << endl;         10   }

4.c++增强

  1.函数:  必须参数个数,返回值类型  对应上 ,   2.转换类型: char *  = (char* ) malloc(  64)    返回值是void * 类型  必须先强转.

   3.结构体增强:   可以含有函数名                    4.增加bool类型        

   5.三目运算符返回值为 变量  a>b  ? :  a ,b   如果a>b  就返回a,而不是返回a的值

5.const

    在c语言中: const  饰的全局放在一个只读的区域,  而修饰的 局部可以通过指针修改, 称伪为常量 

    在c++中 const修饰的局部变量也不能修改(原理是会开辟一个临时的空间, 通过指针修改的不是真正的 指针指向的 值)

    尽量使用const 代替 define

6. 引用

   1.基本语法   type & 别名 = 原名            2.   int a= 10;      int & b = a;    相当于把a的地址给了b ,  必须 int & b = a  

    3.初始化 后不能再修改                         4.int arr [10] ;    int & pArra[10] = arr; 

    a=20   b=10  如果不使用引用不会改变ab的值

void test(int&a , int&b) {
	a = 20;
	b = 10;
}
int main(void) {
	int a = 10;
	int b = 20;
	test(a, b);

	cout << a <<"\n"<<b<<endl;        }

7.内联函数

  1. 解决c中宏的缺陷(没有作用域)        函数前面加 inline   函数声明和实现都要加  inline关键字

   2.类内部的 函数都会默认会自动加上一个  inline   关键字             

   3.内联函数只是给编译器的一个建议,  如果函数内部复杂(if for 过多..) 那么inline   不会有效

8. extern c与c++ 的不适配解决

    1.在c语言中   使用如下来适配c++ ,  在 ifdef 之内写c语言代码

#ifdef __cplusplus
extern "C"{
#endif // __cplusplus

	void test() {
		//c语言代码
	}


#ifdef __cplusplus 
}
#endif

    2.若果在C++中想使用c语言代码   使用 extern 来适配,   列如show 函数是c语言的函数 

extern "C" void SHOW();

9.class 默认权限

  1.struct  默认权限是public   而class中 默认权限是  private ,  只有本类可以访问,子类不可以修改

   2.public 修饰的成员  类外部可以修改,    protect 类外部不能修改, 子类可以修改

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值