摘要: 原因:函数声明少了一个';' 阅读全文
posted @ 2019-10-24 20:37 机智的小小帅 阅读(1663) 评论(0) 推荐(2) 编辑
摘要: 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... 阅读全文
posted @ 2019-10-10 21:22 机智的小小帅 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 唉,今天又是找bug的一天。。。 先看看问题的简化代码,如下 在断点处t的成员m_str总是为空的。 为何? 因为在构造t时,根据所给的字符串hello world,系统构造了一个临时的string对象,t的成员m_str所绑定的是这个临时的string对象。 当构造函数调用完成后,临时的strin 阅读全文
posted @ 2019-10-09 15:51 机智的小小帅 阅读(190) 评论(0) 推荐(0) 编辑
摘要: 标准库中iterator对++/--的重载代码如下: 阅读全文
posted @ 2019-10-06 21:15 机智的小小帅 阅读(494) 评论(0) 推荐(0) 编辑
摘要: 结论:只有当类的某个实例化对象的构造函数执行完毕,而且当该对象退出作用域时,才会执行析构函数。 如果在执行构造函数的过程中抛出了异常,就不会调用析构函数 上测试代码: 执行结果: 推出这么一种不安全的情况 进一步推出结论:在一个类中不要管理多个资源,如果必须要管理多个资源,则创建多个资源管理类,将这 阅读全文
posted @ 2019-10-06 13:25 机智的小小帅 阅读(1179) 评论(0) 推荐(0) 编辑
摘要: 错误原因vs已经提醒的很清楚了:无法将const_iterator转换为iterator 我的出错代码是这样的 思考了很久,最后发现原来是因为将函数定义为const的缘故。 总结:当将函数定义为const后,编译器对代码的编译要求立马就搞了起来 阅读全文
posted @ 2019-10-05 19:09 机智的小小帅 阅读(2249) 评论(0) 推荐(0) 编辑
摘要: 结果: 明明TestClass1的初始化依赖TestClass2,为何TestClass1先于TestClass2初始化。 阅读全文
posted @ 2019-10-05 18:37 机智的小小帅 阅读(349) 评论(0) 推荐(0) 编辑
摘要: 原因:inline函数被外部文件的函数调用时,必须将inline函数定义在头文件中,不能定义在cpp文件中。 阅读全文
posted @ 2019-10-05 17:06 机智的小小帅 阅读(207) 评论(0) 推荐(0) 编辑
摘要: 总结:结果并非一直为true,得看后面赋的值是否为0 阅读全文
posted @ 2019-10-04 21:35 机智的小小帅 阅读(296) 评论(0) 推荐(0) 编辑