c++学习
weixin_41849730
这个作者很懒,什么都没留下…
展开
-
c++ 子类的构造函数会在初始化列表里面给父类构造函数传参的原因
有时在读代码的时候会碰到子类的构造函数在初始化列表里面,给父类的构造函数进行传参,比如说:这时我们就要知道,c++中子类继承父类时是需要调用父类的构造函数的。这里之所以要调用父类的构造函数,是因为子类在继承父类的属性时,子类在内存空间中有一块内存是用来存放父类的属性的,所以需要调用父类的构造函数来对它初始化。如果父类的构造函数没有被重载,那么子类就会调用父类的默认构造函数。这时候我们想要对父类的一些属性进行想要的初始化,就不能使用默认的构造函数,所以需要显式的传值调用对应的构造函数。很简单.原创 2021-08-19 17:11:55 · 1095 阅读 · 0 评论 -
C++ lambda表达式学习帖网址
https://www.cnblogs.com/gqtcgq/p/9939651.html转载 2021-08-18 14:40:43 · 109 阅读 · 0 评论 -
纯虚函数和抽象类
http://c.biancheng.net/view/2299.html原创 2021-04-07 01:20:00 · 103 阅读 · 0 评论 -
C++成员变量的创建以及初始化顺序
转自:https://www.cnblogs.com/lidabo/p/3790606.html规则:1、成员变量在使用初始化列表初始化时,与构造函数中初始化成员列表的顺序无关,只与定义成员变量的顺序有关。因为成员变量的初始化次序是根据变量在内存中次序有关,而内存中的排列顺序早在编译期就根据变量的定义次序决定了。这点在EffectiveC++中有详细介绍。2、如果不使用初始化列表初始化,在构造函数内初始化时,此时与成员变量在构造函数中的位置有关。3、注意:类成员在定义时,是不能初始化的4转载 2020-08-10 11:00:17 · 450 阅读 · 0 评论 -
枚举变量放在常量元素前和后
枚举变量放在常量元素前和后enum {GRADE,PERCENTAGE,PASS}mode 和 enum mode {GRADE,PERCENTAGE,PASS} 有什么区别?1、enum {GRADE,PERCENTAGE,PASS}mode;这种定义方法之后,mode直接就是一个枚举类型变量了,程序里面可以直接使用,比如 mode = PERCENTAGE;这种定义之后,由于枚举类型没有名字,就不能再定义该类型的元素。2、enum mode {GRADE,PERCENTAGE,PASS};转载 2020-07-30 14:48:26 · 254 阅读 · 0 评论 -
关于c++的函数声明
C++里调用函数是否需要声明需要注意以下两点: 1.自己实现的函数,在调用的地方之前实现,无须声明,否则需要声明。 2.使用系统提供的函数,包含头文件即可使用。申明和定义之间的区别: 1.申明-- 不开辟内存,仅仅告诉编译器,申明的部分存在,要预留一点空间。 2.定义-- 开辟内存。申明属于预编译范畴的。最好写在头文件中(申明都写在头文件中,养成一种好的编程习惯)。因为在编译的之前,编译器需要先进行预处理(宏定义,函数的申明,变量的...转载 2020-07-14 18:48:45 · 1629 阅读 · 0 评论 -
关于#ifndef,#define,#endif的作用,其中#ifndef和#endif配套使用
#ifndef(它是if not define的缩写)#ifndef 是宏定义的一种,属于预处理功能三种(宏定义、文件包含、条件编译)中的一种------条件编译。在c语言中,对同一个变量或者函数进行多次声明是不会报错的。所以如果h文件里只是进行了声明工作,即使不使用 #ifndef 宏定义,多个c文件包含同一个h文件也不会报错。但是在c++语言中,由于我们不能对变量进行重定义,而 #ifdef 的作用域只是在单个文件中。如果h文件里定义了全局变量,即使采用 #ifdef 宏定义,多个 .cpp转载 2020-07-14 18:36:08 · 558 阅读 · 0 评论