effective c++
哞哞哞咩咩咩
记录日常学习
展开
-
more effective cpp
条款5class Rational { int a; int b;public: operator double() const { return a / b; }; //隐式类型转换操作符 Rational(int a = 1, int b = 2) :a(a), b(b) {}; };int main(){ Rational r(3, 2); cout << r << endl; //转为double输出 cout << r原创 2020-09-17 19:26:43 · 80 阅读 · 0 评论 -
effective cpp小结条款21~40
条款21在栈上创建对象const Rational& operartor* (const Rational& lhs, const Rational& rhs) { Rational result(lhs.n * rhs.n, lhs.d * rhs.d); return result;//错误代码!}result是个local对象,在函数退出前就被销毁了在堆上创建对象const Rational& operartor* (const Rational&am原创 2020-09-07 21:49:00 · 123 阅读 · 0 评论 -
effective cpp小结条款1~20
条款2#define具有全局性,出来的是宏,它是预处理的东西,预处理后的编译阶段已经不存在,所以不可能获取宏的地址。enum,非全局,内元素也不能取地址(右值),因为常量存放在内存里的位置没有"地址"这个概念,所以不能取地址#include<iostream>using namespace std;void fun() { #define AAA 222};class A{ #define BBB 333//不能用来定义class专属变量,不具有封装性public: #原创 2020-08-24 21:35:04 · 191 阅读 · 0 评论 -
effective cpp小结条款41~55
条款41编译期多态和运行期多态显示接口和隐式接口显示接口是由函数的签名式(也就是函数名称,参数类型,返回类型)构成。如下,就是一个显示接口,我们了解到函数的参数,返回类型,名称等。string fun(int i);而对于隐式接口,就不同了,它不基于函数签名式,而是由有效的表达式来组成。如下:template<typename T>void process(T& w){ if(w.size()>10) { ....原创 2020-09-05 12:11:56 · 78 阅读 · 0 评论