C++
luck_horse
这个作者很懒,什么都没留下…
展开
-
const的用法,特别是用在函数前面与后面的区别
转自:https://www.cnblogs.com/azbane/p/7266747.html在普通的非 const成员函数中,this的类型是一个指向类类型的 const指针。可以改变this所指向的值,但不能改变 this所保存的地址。(int * const p)在 const成员函数中,this的类型是一个指向 const类类型对象的 const指针。既不能改变 this所指...转载 2019-12-06 16:49:13 · 367 阅读 · 0 评论 -
单列模式(懒汉)测试代码
#include <iostream>class CSingleton /* 懒汉式 */{ public: static CSingleton *GetInstance() { if(m_pInstance == NULL) //判断是否第一次调用 { m_pInstance = new CSingleton()...原创 2018-04-10 09:58:00 · 366 阅读 · 0 评论 -
C++ 类中的static成员的初始化
#include <iostream>using namespace std;class Test{public: Test() : y(1), r(y), d(3){} //对于常量型成员变量和引用型成员变量,必须通过参数化列表的方式进行初始化。 ~Test(){} int y; //普通变量成员 int &r; //引用成员变量 ...转载 2018-04-10 10:01:12 · 1320 阅读 · 0 评论 -
C++中特定宏_FUNCTION_
1、宏介绍_FILE_:当前源文件名,char字符,使用/FC选项产生全路径_LINE_:当前源文件的行号,正数_DATE_:当前编译日期,char字符串,格式:Aug 28 2011_TIME_:当前编译时间,char字符串,格式:10:32:12_FUNC_:当前函数_FUNCTION_:当前函数_TIMESTAMP_:最后一次修改当前文件的时间戳,char字符串,格式:Sun Aug ...转载 2018-06-27 11:18:59 · 1383 阅读 · 0 评论 -
C/C++ 宏定义中#、##、#@的区别
#表示:对应变量字符串化 ##表示:把宏参数名与宏定义代码序列中的标识符连接在一起,形成一个新的标识符连接符#@:它将单字符标记符变换为单字符,即加单引号。例如:#define B(x) #@x 则B(a)即'a',B(1)即'1',但B(abc)却不甚有效。...转载 2018-06-27 11:22:41 · 4339 阅读 · 0 评论 -
#define宏定义中的#,##,@#,\ 这些符号的神奇用法
C/C++ 宏命令的神奇用法。先看下面三条语句:#define Conn(x,y) x##y#define ToChar(x) #@x#define ToString(x) #x1231. ## 连接操作符##表示连接(token pasting, or token concatenation,merge two tokens into one while expanding macros)。...转载 2018-06-27 11:29:33 · 460 阅读 · 0 评论 -
深入理解C++中的mutable关键字
mutable的中文意思是“可变的,易变的”,跟constant(既C++中的const)是反义词。 在C++中,mutable也是为了突破const的限制而设置的。被mutable修饰的变量,将永远处于可变的状态,即使在一个const函数中。 我们知道,如果类的成员函数不会改变对象的状态,那么这个成员函数一般会声明成const的。但是,有些时候,我们需要在const的函数...转载 2019-06-17 14:47:59 · 861 阅读 · 0 评论