摘要: C++程序的编译过程通常分为四个主要步骤: 预处理(Preprocessing):这个阶段主要处理源代码文件中的以“#”开头的预编译指令4。例如,对宏进行展开,对include的文件进行展开,处理条件编译选项判断,清理注释等。预处理后生成的文件通常以.i或.ii结尾2。 编译(Compilation 阅读全文
posted @ 2023-12-10 21:32 ponder776 阅读(66) 评论(0) 推荐(0) 编辑
摘要: 移动构造函数是C++11标准中引入的一个特殊的构造函数。它的主要目的是提高程序运行的效率,特别是在处理大型对象或者包含动态分配内存的对象时。 移动构造函数的参数是右值引用,通常用于接受临时对象。在移动构造函数中,新对象会直接接管临时对象的资源,而不是复制这些资源。这样,我们就可以避免一些不必要的深拷 阅读全文
posted @ 2023-12-10 15:34 ponder776 阅读(32) 评论(0) 推荐(0) 编辑
摘要: reinterpret_cast和static_cast都是C++中的类型转换运算符,但它们的用途和行为有所不同。 static_cast: static_cast用于执行比较“自然”和低风险的转换,如整型和浮点型、字符型之间的互相转换。 它也可以用于类层次结构中基类(父类)和派生类(子类)之间指针 阅读全文
posted @ 2023-12-10 15:18 ponder776 阅读(263) 评论(0) 推荐(0) 编辑
摘要: 在C++中,const关键字可以用于创建常量,这意味着一旦定义,其值就不能改变。const可以修饰变量、指针、引用等,根据const修饰的对象不同,我们将其分为顶层const和底层const。 顶层const:当const修饰的是对象本身,即对象本身不可被修改,我们称之为顶层const。例如,对于c 阅读全文
posted @ 2023-12-10 14:54 ponder776 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 成员初始化列表是C++中的一个特性,它允许在构造函数中对类的成员变量进行初始化。成员初始化列表以冒号开头,后跟一系列以逗号分隔的初始化字段。例如: class MyClass { public: MyClass(int a, int b) : m_a(a), m_b(b) { } private: 阅读全文
posted @ 2023-12-10 14:42 ponder776 阅读(33) 评论(0) 推荐(0) 编辑