#define 函數重載

利用#define達到函數重載的目的通常和編譯選項gcc/g++ -D相關

#define CALL(name) call_##name()
void call_one()
{
    cout<<"call_one()"<<endl;
}

void call_two()
{
    cout<<"call_two()"<<endl;
}

void call_three()
{
    cout<<"call_three()"<<endl;
}

int main()
{
#ifdef CALLFUNCTION
#if  (#CALLFUNCTION == "one")
	CALL(one);
#elif  (#CALLFUNCTION == "two")
	CALL(two);
#elif  (#CALLFUNCTION == "three")
	CALL(three);
#endif
#endif
}

// gcc -DCALLFUNCTION=one
// gcc -DCALLFUNCTION=two
// gcc -DCALLFUNCTION=three

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章