hi,all
I have a program about ## ,which is the following.
=========================================================
#include <iostream>
using namespace std;
class CMyClass {
public:
static int m_i;
public:
CMyClass(){
m_i++;
}
};
#define NEWW(i) CMyClass *a_##i=new CMyClass();
#define PPR(i) cout<<a_##i->m_i<<endl
#define F(i) F_##i()
int CMyClass::m_i = 0;
int F_0()
{
cout<<"F0"<<endl;
return 1;
}
int F_1()
{
cout<<"F1"<<endl;
return 1;
}
int F_2()
{
cout<<"F2"<<endl;
return 1;
}
int F_3()
{
cout<<"F3"<<endl;
return 1;
}
void FF(int i){
int a;
a=i;
switch(a){
case 0:{
F(0);
break;
}
case 1:{
F(1);
break;
}
case 2:{
F(2);
break;
}
case 3:{
F(3);
break;
}
}
}
void NEW(int i){
int a;
a=i;
NEWW(i);
PPR(i);
}
int main()
{
for(int i=0;i<10;i++){
NEW(i);
}
for(int i=0;i<4;i++){
FF(i);
}
return 0;
}
===========================
The question is the I can call NEWW(i) in function void NEW(int i)
But failed in processing function void FF(int i)?
If we write void FF(int i) as:
void FF(int i){
F(i);
}
It will fail.
Compiler : VS2005