Day 65 初始 c++ 引用, 枚举, 内联, 重载,

本文详细介绍了C++编程的基础知识,包括编译器选择、面向对象编程思想、设计模式,以及C++11和C++17标准。深入探讨了变量声明、内联函数、重载函数等高级特性,并对比了引用与指针的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.linux 下编译c 用的编译器是 gcc ;编译c++ 用的编译器是 g++
2.类库 微软的是MFC . ;;; Qt类库是跨平台的,windows 下的类库不能跨平台。
c++ 是面向对象的编程思想。 有23种设计模式。
在c++中 “cout <<” 表示流插入; << endl(操控子) 相当于’\n’; c++ 11标准 (2017年发布) 。 c++ 17标准(2018年发布)。

3… \000 (表示8进制) \x 0000(表示16进制)
4.c语言中 auto int a; (表示变量a是自动周期变量,一般我们都不加 auto);;;;
在c++中 可以 auto i=10+8;(不写变量i的类型,编译器会自动识别初始化变量的类型,从而把i认为是和后面初始值一样的类型)
5.register int i; 建议编译器将变量放到寄存器中。。
6.extern int i; 表明是一个外部变量。
7.static int i; 表明是一个静态的变量。
8.const int i; 表明是一个常量;
9.对于枚举类型按常量处理,不能对其赋值。不允许整型向枚举赋值,可以枚举赋值为整型。 double 向int 赋值会小数截断。
10.栈帧, 每个函数都有自己的栈帧。
11.引用相当于别名 (int i = 6; int &ref=i ) 引用必须初始化。
int &ref = 10; 这样写法是错误的 ,因为ref 是要一个可读可写的值给它, 而 10 是常量,常量是不可被写的。
const int &ref = 10; 这样可以因为 const int &ref 要一个常量。 符合要求。 如果 int i =10 ;const int &ref = i;这种也是正确的i可读可写。但ref 要的值只要可读就行了
12. 引用与指针都可以修改函数外变量达到值,二者有什么区别?
(1)指针可以不用初始化,但引用必须要初始化。
(2)有空指针,但没有空引用
(3)指针本身占四字节空间,而引用自身不占空间。

13.内联函数, 用inline 修饰,如果当一个函数,里面非常简单时,如果进行入栈,出栈,操作时浪费的代价远远大于所要执行命令的代价,这时候就可以使用内联函数inline
对其进行展开,。。,inline 也是一个建议,至于将不将函数直接展开还是取决于编译器。
如果使用内联函数,则在主调函数之前必须要有内联函数的定义。
14.重载函数 ,

int abc(int a, int b, int c=0)
{

return a+b+c;

}
//cout << abc(1,2) << endl; 这个输出结果为3
这样写可以虽然参数个数不够,但 c已经在内部初始化了。即使不穿c 的实参也是可以的。
//cout << abc(1,2,3) << endl;


这个输出结果为错
int abc(int a=0, int b=0, int c)
{

return a+b+c;

}
这种写法是错误的,应该先给右边的初始化。如果要初始化值时应该从()里面右边开始,如:下面这样是真确的
int abc(int a, int b=0, int c=0)
{

return a+b+c;

}


int abc(int a, int b=0, int c=0)
{
cout<< “a:” << a<< endl;
cout<< “b” <<b<< endl;
cout<< “c” <<c << endl;

return a+b+c;

}

cout << abc(1,2) << endl;
打印的结果是 a :1
b :2
c :0
输出为:3

则可以说明,向函数里面传参时是从左开始向右传递的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值