“#” “##”
c/c++经常使用# 、##来增加代码的整洁性、冗余性,能够避免过多使用继承来获取相同的API
使用方式及含义介绍
- ”#“即是运算符也是预处理
作用:可以将普通文本字符被转换为一个可以被替代的语言符号
例如:
//
#define LIB_CLASS(library, name) \
virtual const char* libraryName() const { return #library; }\
virtual const char* className() const { return #name; }
class CTestOne
{
public:
LIB_CLASS(Def,CTestOne)
TestOne();
~TestOne();
protected:
private:
};
class CTestTwo
{
public:
LIB_CLASS(Def,CTestTwo)
CTestTwo();
~CTestTwo();
protected:
private:
};
int main(int argc,char**argv)
{
CTestOne one;
const char* pName=one.className(); // 将会获取到CTestOne
CTestTwotwo;
const char* pTName=two.className();// 将会获取到CTestOne
}
- ”##“和运算符”#“一样,可以用于宏函数的替换部分,即起到将前后两部分粘合起来
例如:
#define X(n) j##n
X(10)
j10