读书人

关于#define后边的#的应用

发布时间: 2013-01-17 10:28:54 作者: rapoo

关于#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

读书人网 >C++

热点推荐