上一页 1 ··· 24 25 26 27 28 29 30 31 32 ··· 40 下一页

2021年7月20日

摘要: 1) 当初始化一个引用成员变量时; 2) 初始化一个const成员变量时; 3) 当调用一个基类的构造函数,而构造函数拥有一组参数时; 4) 当调用一个成员类的构造函数,而他拥有一组参数; 5) 编译器会一一操作初始化列表,以适当顺序在构造函数之内安插初始化操作,并且在任何显示用户 代码前。list 阅读全文
posted @ 2021-07-20 23:18 超人不会灰啊 阅读(207) 评论(0) 推荐(0) 编辑
 
摘要: 有三种情况会以一个对象的内容作为另一个对象的初值: 1) 对一个对象做显示的初始化操作,X xx = x; 2) 当对象被当做参数交给某个函数时; 3) 当函数传回一个类对象时; 1) 如果一个类没有拷贝构造函数,但是含有一个类类型的成员变量,该类型含有拷贝构造函数,此时 编译器会为该类合成一个拷贝 阅读全文
posted @ 2021-07-20 23:16 超人不会灰啊 阅读(128) 评论(0) 推荐(0) 编辑
 
摘要: 1) 如果一个类没有任何构造函数,但他含有一个成员对象,该成员对象含有默认构造函数,那么编译 器就为该类合成一个默认构造函数,因为不合成一个默认构造函数那么该成员对象的构造函数不能调 用; 2) 没有任何构造函数的类派生自一个带有默认构造函数的基类,那么需要为该派生类合成一个构造函 数,只有这样基类 阅读全文
posted @ 2021-07-20 23:12 超人不会灰啊 阅读(67) 评论(0) 推荐(0) 编辑
 
摘要: 1) 有时候我们会遇到这样一种情况,我们用对象a初始化对象b后对象a我们就不在使用了,但是对象a 的空间还在呀(在析构之前),既然拷贝构造函数,实际上就是把a对象的内容复制一份到b中,那么为 什么我们不能直接使用a的空间呢?这样就避免了新的空间的分配,大大降低了构造的成本。这就是移 动构造函数设计的 阅读全文
posted @ 2021-07-20 23:09 超人不会灰啊 阅读(67) 评论(0) 推荐(0) 编辑
 
摘要: 1) 类的非静态成员变量大小,静态成员不占据类的空间,成员函数也不占据类的空间大小; 2) 内存对齐另外分配的空间大小,类内的数据也是需要进行内存对齐操作的; 3) 虚函数的话,会在类对象插入vptr指针,加上指针大小; 4) 当该该类是某类的派生类,那么派生类继承的基类部分的数据成员也会存在在派生 阅读全文
posted @ 2021-07-20 23:00 超人不会灰啊 阅读(155) 评论(0) 推荐(0) 编辑
 
摘要: 1) 对象的静态类型:对象在声明时采用的类型。是在编译期确定的。 2) 对象的动态类型:目前所指对象的类型。是在运行期决定的。对象的动态类型可以更改,但是静态 类型无法更改。 3) 静态绑定:绑定的是对象的静态类型,某特性(比如函数依赖于对象的静态类型,发生在编译期。 4) 动态绑定:绑定的是对象的 阅读全文
posted @ 2021-07-20 22:59 超人不会灰啊 阅读(176) 评论(0) 推荐(0) 编辑
 
摘要: 当在类的非静态成员函数访问类的非静态成员时,编译器会自动将对象的地址传给作为隐含参数传递给函数,这个隐含参数就是this指针。 即使你并没有写this指针,编译器在链接时也会加上this的,对各成员的访问都是通过this的。 例如你建立了类的多个对象时,在调用类的成员函数时,你并不知道具体是哪个对象 阅读全文
posted @ 2021-07-20 22:53 超人不会灰啊 阅读(278) 评论(0) 推荐(0) 编辑
 
摘要: 1、static成员不属于任何类对象或类实例,所以即使给此函数加上virutal也是没有任何意义的。 2、静态与非静态成员函数之间有一个主要的区别,那就是静态成员函数没有this指针。 虚函数依靠vptr和vtable来处理。vptr是一个指针,在类的构造函数中创建生成,并且只能用this指针来 访 阅读全文
posted @ 2021-07-20 22:48 超人不会灰啊 阅读(319) 评论(0) 推荐(0) 编辑
 
摘要: 1) 使用引用参数的主要原因有两个: 程序员能修改调用函数中的数据对象 通过传递引用而不是整个数据–对象,可以提高程序的运行速度 2) 一般的原则: 对于使用引用的值而不做修改的函数: 如果数据对象很小,如内置数据类型或者小型结构,则按照值传递; 如果数据对象是数组,则使用指针(唯一的选择),并且指 阅读全文
posted @ 2021-07-20 22:47 超人不会灰啊 阅读(184) 评论(0) 推荐(0) 编辑
 
摘要: 1) C++空类的大小不为0,不同编译器设置不一样,vs设置为1; 2) C++标准指出,不允许一个对象(当然包括类对象)的大小为0,不同的对象不能具有相同的地址; 3) 带有虚函数的C++类大小不为1,因为每一个对象会有一个vptr指向虚函数表,具体大小根据指针大小确定; 4) C++中要求对于类 阅读全文
posted @ 2021-07-20 22:43 超人不会灰啊 阅读(169) 评论(0) 推荐(0) 编辑
上一页 1 ··· 24 25 26 27 28 29 30 31 32 ··· 40 下一页