摘要:
本文的内容包括: 1 导致内存破坏的指针操作类型; 2 在使用动态内存分配时必须考虑的检查点; 3 导致内存泄漏的场景。 有几种问题场景可能会出现,从而可能在完成生成后导致问题。在处理指针时,您可以使用本文中信息来避免许多问题。 一、未初始化的内存 已知P分配了10个字节,这10个字节可能包含垃圾数 阅读全文
摘要:
1、当派生类实现基类的虚函数时,基类中虚函数表和虚函数地址和派生类中虚函数表和虚函数地址不同; 当派生类不实现基类的虚函数时,基类中虚函数表和虚函数地址和派生类中虚函数表和虚函数的地址相同。 1、派生类重新实现虚函数。查看其虚函数表和虚函数表中虚函数的地址 #include<iostream> us 阅读全文
摘要:
1、new、delete是C++中的操作符,而malloc和free是标准库函数。 2、对于非内部数据对象来说,只使用malloc是无法完成动态对象要求的,一般在创建对象时需要调用构造函数,对象消亡时,自动的调用析构函数。而malloc free是库函数而不是运算符,不在编译器控制范围之内,不能够自 阅读全文
摘要:
一、虚函数的工作原理 虚函数的实现要求对象携带额外的信息,这些信息用于在运行时确定该对象应该调用哪一个虚函数。典型情况下,这一信息具有一种被称为 vptr(virtual table pointer,虚函数表指针)的指针的形式。vptr 指向一个被称为 vtbl(virtual table,虚函数表 阅读全文
摘要:
#define _CRT_SECURE_NO_WARNINGS #include<iostream> #include<string> using namespace std; class Name { public: Name(const char* myp) { len = strlen(myp 阅读全文