上一页 1 ··· 8 9 10 11 12
摘要: 第一次 检查模板是否有语法错误 第二次检查实例化模板是否合法 阅读全文
posted @ 2023-11-29 17:22 ponder776 阅读(7) 评论(0) 推荐(0) 编辑
摘要: 代码区 栈 堆 全局/静态存储区 常量区 阅读全文
posted @ 2023-11-29 16:35 ponder776 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 在C++中,虚函数表(vtable)是存储在类的内存空间中的,每个包含虚函数的类都有一个虚函数表。这个表是一个存储虚函数地址的数组,它在编译时被创建。 虚函数表保存在.rdata只读数据段,也就是C++内存模型中的常量区。虚函数表属于类,类的所有对象共享这个类的虚函数表。 虚表指针(vptr)是对象 阅读全文
posted @ 2023-11-29 16:34 ponder776 阅读(12) 评论(0) 推荐(0) 编辑
摘要: 这段代码是一个C++模板,用于检查一个类型是否是类。下面是对这段代码的详细解释: template<typename _Tp>:这是一个模板声明,表示这个结构体可以接受一个类型参数_Tp。 struct is_class:这是一个结构体的声明,结构体的名字是is_class。 : public in 阅读全文
posted @ 2023-11-29 16:11 ponder776 阅读(5) 评论(0) 推荐(0) 编辑
摘要: volatile 关键字是一种类型修饰符,用它声明的类型变量表示可以被某些编译器未知的因素更改,比如:操作系统、硬件或者其它线程等。遇到这个关键字声明的变量,编译器对访问该变量的代码就不再进行优化,从而可以提供对特殊地址的稳定访问。 阅读全文
posted @ 2023-11-29 15:57 ponder776 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 在C++中,多态是面向对象编程的一个重要特性,它允许通过基类的指针或引用来调用派生类的成员函数。多态的字面意思是“多种形态”,它允许相同的操作可以作用于不同的对象,而具体执行的操作则取决于对象的类型和特性。 在C++中,多态主要通过虚函数来实现。虚函数是在基类中使用关键字virtual声明的函数,在 阅读全文
posted @ 2023-11-29 13:29 ponder776 阅读(6) 评论(0) 推荐(0) 编辑
摘要: 在C++中,如果基类的析构函数不是虚函数,那么在使用基类指针删除派生类对象时,只会调用基类的析构函数,而不会调用派生类的析构函数。 这是因为在C++中,非虚函数是在编译时期就已经确定了调用关系,这种确定调用关系的方式被称为静态绑定。当基类指针指向派生类对象时,如果析构函数不是虚函数,那么在删除指针时 阅读全文
posted @ 2023-11-29 13:26 ponder776 阅读(27) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2023-11-27 17:34 ponder776 阅读(3) 评论(0) 推荐(0) 编辑
摘要: C++引入函数对象主要是因为函数对象具有以下优势: 函数对象可以有自己的状态:我们可以在类中定义状态变量,这样一个函数对象在多次的调用中可以共享这个状态。但是函数调用没这种优势,除非它使用全局变量来保存状态。 函数对象有自己特有的类型,而普通函数无类型可言:这种特性对于使用C++标准库来说是至关重要 阅读全文
posted @ 2023-11-25 19:51 ponder776 阅读(20) 评论(0) 推荐(0) 编辑
上一页 1 ··· 8 9 10 11 12