随笔分类 - C++
摘要:# C++类中报错:class "xxx" does not name a type ## 原因 1. 引用的类命名空间未包含 2. 引用的类头文件未包含 3. 包含了头文件,或者已经前置声明了,则说明所引用的类名写错。 4. 循环引用头文件 5. 类内修改了类成员 [类中报错 xxx does n
阅读全文
摘要:# C++基类的虚析构函数问题abstract but has non-virtual destructor C++条款:**如果类存在虚函数,如果类要作为基类的话,一定要在析构函数定义为`virtual`的** 派生类可以分配内存或保留对销毁对象时需要清除的其他资源的引用。如果不为接口/抽象类提供
阅读全文
摘要:# 数据类型所占的字节数探究 首先明确:**操作系统的寻址能力和机器的地址总线宽度以及数据总线宽度都有关。地址总线宽度决定了机器中总共有多少物理地址,数据总线决定了OS能访问这些物理地址中的多少部分**。 - **32位系统的数据总线和地址总线宽度都为32位**,因此,一次最多能够处理32位的数据,
阅读全文
摘要:调用约定(Calling Convention) 参考: C++ 小知识点 WINAPI - 程序员丁 - 博客园 (cnblogs.com) MFC中CALLBACK函数 和WINAPI函数的区别_mfc中回调函数需要全局函数吗_I_Have_123456的博客-CSDN博客 函数调用方式主要体现
阅读全文
摘要:C++中在栈和堆中创建对象以及引发的思考 建立对象有2种方式 静态创建: 如Obj obj,是编译器在栈中为对象分配内存,通过移动栈顶指针挪出适当的空间,然后在这片内存空间是哪个调用构造函数创建对象 栈由编译器自动分配和释放,存放函数的参数值、局部变量的值、对象的引用地址等 动态创建: 如Obj *
阅读全文
摘要:程序中的断言(ASSERT) 概念 断言(assertion)是一种防御式除错机制,用于验证代码是否符合编码人员的预期。编码人员在开发期间应该对函数的参数、代码中间执行结果合理地使用断言机制,确保程序的缺陷尽量在测试阶段被发现。 通常来说,断言并不是正常程序所必需的,但对于程序调试来说,断言能够快速
阅读全文

浙公网安备 33010602011771号