
EffectiveC++
文章平均质量分 76
programing菜鸟
喜欢C/C++, Linux,数据结构的朋友们可以关注我,不会让你失望的。
展开
-
C++重载决议
目录前言一些与overload易混淆的概念override运算符重载为什么需要重载决议?声明函数重载什么是重载决议?什么不是函数重载?重载决议之过程函数重载 && 函数模板before 重载决议more detailstype conversion(类型转换)rank(排名)其他两个排名解决ambiguous function call当最佳匹配不是你想要的前言这篇博客用来总结overload resolution,这是一篇关于重载决议的演讲,very nice。一些与overload原创 2022-01-31 14:34:59 · 2612 阅读 · 5 评论 -
给operator=返回引用
Scott Meyers说,如果没有必要,那么你的操作符重载要与内置类型保持高度一致性。当你实现操作符重载时,你应该想一想,内置类型是否支持这样做?内置类型还支持怎样做?C++的内置类型支持连续赋值,像下面这样,int x = 0, y = 1, z = 2;x = y = z = 3;所以你重载的operator=应该允许连续赋值。所以你的operator=应该返回引用。class MyClass{public: MyClass& operator=(const MyCla.原创 2021-12-13 13:03:44 · 885 阅读 · 0 评论 -
在operator=中处理自我赋值
目录注意自我赋值证同测试自我赋值安全问题异常安全问题copy-and-swap技术注意自我赋值证同测试自我赋值安全问题异常安全问题copy-and-swap技术原创 2021-12-12 22:45:06 · 366 阅读 · 1 评论 -
尝试写出一个不带有异常的swap
目录std::swap在类内实现swap,然后特化std::swap调用之不要向std中增加东西为你的class(非模板)补上特化的std::swap让member版的swap远离异常C++11之"移动拷贝"版本的swapstd::swapswap是一个很常见的函数,用来交换两个变量的值。而且swap也可以用来处理赋值函数中的异常安全问题。当然,这取决于swap函数本身不会抛出异常。swap函数的实现通常是这样的:template <class T>void swap(T&原创 2021-12-12 21:09:52 · 405 阅读 · 0 评论 -
为多态基类声明virtual析构函数
EffectiveC++条款7原创 2021-12-11 22:07:39 · 535 阅读 · 0 评论