Loading...
Java的非基本类型只能在堆中申请内存,并且由垃圾收集器管理其生命周期。不需要程序员控制其生命周期。C++的非基本类型可以在堆中申请内存,然后由程序员控制其生命周期(手动调用析构函数delete)。也可以在栈中申请内存,由程序栈控制其生命周期,非基本类型对象的生命周期与当前程序栈相同,程序栈空时,会自动调用对象的析构函数。为何Java鼓励在堆中申请内存呢? 为何c++在堆中申请内存如此普遍呢...
什么是cmake当编译源文件多的时候使用makefile脚本来自动编译程序,但当源文件特别多的时候,手写makefile 同样是很难的事情,于是有了cmake ,他通过cmakelist.txt 文件管理项目文件。使用cmake . 命令可以使项目生成特定平台的makefile 。 编译流程:编写CMake 配置文件 CMakeLists.txt执行命令 cmake PATH 生成 Make...
多态公有继承派生类对象使用基类的方法,如果希望同一种方法派生类和基类的行为是不同的,也即方法的行为取决于调用该方法的对象,这种行为称为多态。基类使用虚方法(此时派生类自动成为虚方法,可以指出也可以不指出)。基类不使用虚方法,在派生类直接重定义该方法。声明为virtual如果不将函数声明为virtual,程序将根据引用类型或者指针类型选择方法。如果声明为virtual,程序将根据引用或者指针指...
1.既有char* 何有 char[]?一直以来我对此一无所知,我也一直在想这同一件事的两种写法有何意义,其中的奥妙容我慢慢道来。2.char* 无法做到的事情 char* p; // 这条语句声明了一个指向char类型的指针p,请注意,它没有为*p 开辟空间,甚至*p在哪儿都是个问题 char p[100]; // 这条语句声明了一个指向char类型的指针p,同时,它为*p开辟了100...
.clang-format--- Language: Cpp # BasedOnStyle: WebKit AccessModifierOffset: -4 AlignAfterOpenBracket: DontAlign ########## #连续赋值等号对齐 AlignConsecutiveAssignments: true # 连续声明变量对齐 AlignConsec...