摘要:
原因:函数声明少了一个';' 阅读全文
摘要:
1 #include 2 using namespace std; 3 4 void* operator new(size_t size, const char* file, int line) 5 { 6 cout << file << " : " << line << endl; 7 cout << "size : " << size << endl; 8... 阅读全文
摘要:
唉,今天又是找bug的一天。。。 先看看问题的简化代码,如下 在断点处t的成员m_str总是为空的。 为何? 因为在构造t时,根据所给的字符串hello world,系统构造了一个临时的string对象,t的成员m_str所绑定的是这个临时的string对象。 当构造函数调用完成后,临时的strin 阅读全文
摘要:
标准库中iterator对++/--的重载代码如下: 阅读全文
摘要:
结论:只有当类的某个实例化对象的构造函数执行完毕,而且当该对象退出作用域时,才会执行析构函数。 如果在执行构造函数的过程中抛出了异常,就不会调用析构函数 上测试代码: 执行结果: 推出这么一种不安全的情况 进一步推出结论:在一个类中不要管理多个资源,如果必须要管理多个资源,则创建多个资源管理类,将这 阅读全文
摘要:
错误原因vs已经提醒的很清楚了:无法将const_iterator转换为iterator 我的出错代码是这样的 思考了很久,最后发现原来是因为将函数定义为const的缘故。 总结:当将函数定义为const后,编译器对代码的编译要求立马就搞了起来 阅读全文
摘要:
结果: 明明TestClass1的初始化依赖TestClass2,为何TestClass1先于TestClass2初始化。 阅读全文
摘要:
原因:inline函数被外部文件的函数调用时,必须将inline函数定义在头文件中,不能定义在cpp文件中。 阅读全文
摘要:
总结:结果并非一直为true,得看后面赋的值是否为0 阅读全文
摘要:
example 结果: 阅读全文