C++课程学习

这里记录一下我前几周学习C++的一点收获

本人处于本科课程学习中,由于已经学习了C与数据结构这两门基础专业课,对于程序的基本认知,和一些基本的算法还算了解,所以很多东西就不记录了。

c++版本

我学习的C++大概率是C++17,但是很多时候还是以C++11的标准。

基本概念

C++是一门以C语言为基,是C语言的超集,对C语言是一种向下兼容的语言体系,但是它同时又是为了改进C语言面对过程的程序设计的繁复性,它又有了专门面对对象的程序设计。C++的语法规则和C语言大体相似。但是很多定义上会有一些简单的区别。
对于C,按照我自己这一年出头的经验,在一些小的源文件中,我们一般是不会使用比较复杂的定义的。学过的最复杂的定义的话,一般是函数指针和函数指针数组等,已经算相对来说很复杂的定义,在我们的平时的程序练习中,我们一般不会遇到非常特殊的定义。C语言其实也有很多特殊定义,但是由于平时最多的练习仅仅约束在一个源文件内可能用得不多。我仅仅在课设中,使用过项目文件的形式,所以才使用过一些类似于extren这种可以跨文件的操作。
在这两周的课程中,我所认知的定义前缀:
1.const (这个大家还比较熟悉)就是作为一个不可被修改的前缀修饰词。

const int x = 10;
int y;
const int &z = x; 

在这里const就是表示x变量的值不能被随便修改了。
而y在这条语句中就没有这种限制。
&表示z变量的引用,需要保证引用类型与右值表达式的类型一致。
2.constexpr (新学的,理解不知道准不准确,新手,有错请大佬斧正)

constexpr int x=2+3;

constexpr会在编译阶段就直接计算出x=5;
constexpr也可以用来修饰函数,但跟const不一样,constexpr一般用来修饰比较简单的函数内容,const修饰函数仅指函数返回值无法改变。
3.volatile(表示变量)
定义动态变量,每次要求直接读值,这是告诉编译器这个变量的值可能被突然改变。
一些静态变量和全局变量在C语言又了解,就不多赘述了。
加一点引用:
引用分为有址引用变量和无址引用变量。
有址引用的话共享变量内存
类上面z就会共享x的变量地址,但是有时会出现给有址引用赋值常数的现象,这其中是有一个中转匿名变量,常数是一个用完即死的立即数。
无址引用就是只能引用一个常数变量了。

函数概念

函数分为四种
(1)默认全局函数
没有任何前缀定义的普通函数。
(2)内联函数
是一种直接将函数体插入主函数调用位置的一个局部函数,功能是提高程序执行效率的函数。
(3)外部函数
extern定义的函数。是所有源文件均可以访问的函数,作用域为整个文件。
(4)静态函数
static定义的函数。是仅限当前代码文件访问或者调用的局部函数。

函数参数

函数参数在C课程里学过
这里主要记录省略参数
但是省略参数一定要定义好第一个函数变量类型
后面的可以做省略

函数重载

C++函数有一个特别的功能,函数重载。
函数名相同,但是参数个数或参数类型有所不同的函数被称为重载函数。
重载函数只要让编译器读懂你要调用哪一个函数就可以了。

int f();
int f(int a);

类似上面的代码,事实上,参数类型,数量一旦有不同,编译器就可以对函数进行区分。
但是仅仅只有函数返回值不同是无法判断的。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值