随笔分类 - c/c++
摘要:在c++中,只传一个参数的构造函数定义了一个缺省的转换操作(隐式转换),即将该构造函数对应数据类型的数据转换为该类的对象,如下所示
阅读全文
摘要:1、pvs studio(免费) 2、cppcheck(开源免费) 3、understand(需要付费)
阅读全文
摘要:1、数组中元素不可以是引用(引用不可以作为数组元素的原因是它不支持传统意义的复制(内存分配)) 2、数组名可以是引用
阅读全文
摘要:using std::cout; // using 声明 using namespace std; // using 编译指令,导入std里面的所有名称 一般使用using 声明,它只会导入指定的名称,这样更安全,当与局部重名时会报错 使用using编译指令,与局部变量重名时,则会覆盖命名空间中的同
阅读全文
摘要:1、在c++中构造函数、析构函数、=运算符、友元无法继承 2、const 成员、引用成员、类的对象成员没有默认构造函数时,需在类的构造函数初始化列表中对其进行初始化 3、基类无默认构造函数,派生类需在其构造函数初始化列表中调用基类的构造函数
阅读全文
摘要:1、重载 overload 函数名一样,参数不同(类型、顺序,c++类中还有const函数,与返回值类型无关),重载的函数在同一个作用域(同一个类或在同一cpp文件中) 2、覆盖 override 派生类与基类函数同名,参数相同,且基类函数由virtual修饰,覆盖就是常说的虚函数 3、重写 ove
阅读全文
摘要:sizeof: 一般指类型、变量等占用的内存大小(由于在编译时计算,因此sizeof不能用来返回动态分配的内存空间的大小) strlen: c字符串的长度(参数必须是字符型指针 char*,当数组名作为参数传入时,实际上数组就退化成指针了。该函数的功能是从代表该字符串的第一个地址开始遍历,直到遇到结
阅读全文
摘要:c++11中引入了新的枚举类型 >强制枚举类型 参数说明: identifier:指定给与枚举的类型名称。 type:枚举器的基础类型(默认int),所有枚举器都具有相同的基础类型,可能是任何整型。 enum-list:枚举中以逗号分隔的枚举器列表。 范围中的每个枚举器或变量名必须是唯一的。 但是,
阅读全文
摘要:虚析构函数的作用主要是当通过基类指针删除派生类对象时,调用派生类的析构函数(如果没有将不会调用派生类析构函数)
阅读全文
摘要:引用是变量的别名,共享内存空间 1、普通引用 2、const 引用 3、函数引用 3.1 引用参数 void test1(int &a, int &b); // 3.2 返回引用 int &test2(int a, int b); //
阅读全文
摘要:1、静态成员初始化(不能在构造函数或初始化列表中初始化) 1.1 所有静态成员都可以在类定义之外初始化(通用),如下所示 1.2 特殊的静态常量成员,可以在类内初始化,如下所示 2、非静态成员初始化 2.1 const成员变量只能在初始化列表中初始化 2.2 非const成员变量在构造函数、初始化列
阅读全文
摘要:获取变量的数据类型 typeid(a).name() type(a) type(a)
阅读全文
摘要:指针函数:返回值是一个指针 函数指针:函数名是一个指针,指向一个函数
阅读全文
摘要:class Test{public: Test() {} Test(int a) {}} 1、栈上创建对象 1.1 无括号 Test a; // 调用默认构造函数,栈上分配内存创建对象 1.2 有括号 Test a(); // 无任何意义,声明一个返回值为Test对象的无参函数 1.3 有括号+参数
阅读全文
摘要:为啥要对齐: 1、平台问题:并非所有的硬件平台都能访问任意地址上的任意数据,某些硬件平台只能在某些地址处获取某些特定类型的数据,否则抛出异常 2、硬件原因:经过内存对齐之后,CPU的内存访问速度大大提升 对齐规则: 1、结构体中第一个成员与结构体偏移量为0 2、其他成员偏移为该成员大小整数倍 3、结
阅读全文

浙公网安备 33010602011771号