首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

关于#define后边的#的应用

2013-01-17 
关于#define后面的#的应用class BaseAbc{public:BaseAbc(){std::coutconstructorstd::endl}}class

关于#define后面的#的应用


class BaseAbc
{
public:
BaseAbc(){std::cout<<"constructor"<<std::endl;}
};
class Abb
{
public:
Abb(const std::string &x,BaseAbc *b)
{
std::cout<<"ok"<<std::endl;
}
};
#define ADD_PACKAGE(name) static Abb name##Abb(#name, new name##Abc);
ADD_PACKAGE(Base);
int main() 
{
system("pause");
return 0;
}

为什么这里没把分号去掉,也没移到main里面,程序依然执行
(刚才着急了,还没解决)
[解决办法]
楼主你想问宏定义后面 加不加分号? 还是?
[解决办法]
name##Ab;
##的作用是粘合的作用,name##Abc====nameAbc

热点排行