摘要:
inline 成员函数在类体中定义的成员函数的规模一般都很小,而系统调用函数的过程所花费的时间开销相对是比较大的。 调用一个函数的时间开销远远大于小规模函数体中全部语句的执行时间。 为了减少时间开销,如果在类体中定义的成员函数中不包括循环等控制结构,C++系统会自动将它们作为内置(inline)函数 阅读全文
摘要:
1. 虚函数中存在默认值时,需要注意其函数调用中默认值: class cbase { public: virtual void func(int a = 10) { cout << "this is cbase func:" << a << endl; } }; class csub : publi 阅读全文
摘要:
https://www.cnblogs.com/heyonggang/p/3255155.html 超级详细 阅读全文
摘要:
C++右值引用 作用:对右值进行修改; 为此,C++11 标准新引入了另一种引用方式,称为右值引用,用 "&&" 表示。 话说,C++标准委员会在选定右值引用符号时,既希望能选用现有 C++ 内部已有的符号,还不能与 C++ 98 /03 标准产生冲突,最终选定了 2 个 '&' 表示右值引用。 需 阅读全文
摘要:
C++11中,当类中含有不能默认初始化的成员变量时,可以禁止默认构造函数的生成, myClass() = delete;//表示删除默认构造函数 myClass() = default;//表示默认存在构造函数 当类中含有不能默认拷贝成员变量时,可以禁止默认构造函数的生成, myClass(cons 阅读全文
摘要:
题目描述 给定一个数组arr,返回arr的最长无的重复子串的长度(无重复指的是所有数字都不相同)。 备注:1 <= n <= 105 使用空间换时间 int maxLength(vector<int>& arr) { int size = arr.size(); int check[1000000] 阅读全文
摘要:
#include <memory> int main() { std::unique_ptr<int> f1 = std::unique_ptr<int>(new int); std::unique_ptr<int> f2 = std::move(f1); } 1. unique_ptr { std 阅读全文
摘要:
1. 从语法上讲,构造函数和析构函数都能调用虚函数,没有问题; 2. 从实际效果上,无法实现虚函数的作用, 例如,基类的构造函数中即使调用虚函数,也是调用的基类自己实现的虚函数; 基类的析构函数中即使调用虚函数,也是调用的基类自己实现的虚函数; 《Effective c++》条款09:不要在构造函数 阅读全文
摘要:
1. 创建对象时,需要确定对象的类型,而虚函数是在运行时动态确定其类型的。在构造一个对象时,由于对象还未创建成功,编译器无法知道对象的实际类型; 2. 虚函数的调用需要通过vptr虚函数表指针,而该指针是存放在对象的内存空间中的,若构造函数声明为虚函数,那么由于对象尚未创建,还没有内存空间,也就没有 阅读全文
摘要:
https://blog.csdn.net/weixin_41066529/article/details/89488774 一. 构造函数 总结如下: 1. 构造函数中抛出异常,会导致析构函数不能被调用,但对象本身已申请到的内存资源会被系统释放(已申请到资源的内部成员变量会被系统依次逆序调用其析构 阅读全文