
C++笔记
CCSUZB
吾生也有涯,而知也无涯
展开
-
宏的编写技巧
宏的编写技巧 当C语言的宏定义包含多余一条语句时,就需要do { /*...*/} while(0)包裹成单个语句,否则会有如下问题: #define M() a(); b() if (cond) M(); else c(); /*预处理后*/ if (cond) a(); b(); /* b();在if语句之外*/ else /* 报错误:else without a previous ‘if’*/ c(); 只用{}也不行 #define M() { ..原创 2021-04-17 21:03:36 · 390 阅读 · 0 评论 -
第十三章:拷贝控制
左值引用:绑定到左值的应用(常规引用) 返回左值引用的函数,连同赋值、下标、解引用和前置递增/递减运算符,都是返回左值表达式的例子。我们可以将一个左值引用绑定到这类表达式的结果上 右值引用:必须绑定到右值的引用(只能绑定到一个将要销毁的对象) 返回非引用的函数,连同算数、关系、位以及后置递增/递减运算符,都生成右值。我们不能将一个左值引用绑定到这类表达式上,我们可以将一个const的左值引用或者一个右值引用绑定到这类表达式上 ...原创 2021-02-10 16:17:54 · 131 阅读 · 0 评论 -
关于初始值顺序列表
考察以下两段代码区别 class Test { public: Test() { }; Test(int x) { this->int_x = x; }; void show() { cout << int_x << endl; } private: int int_x; }; class Mytest :public Test { public: ...原创 2018-12-31 17:07:02 · 275 阅读 · 1 评论