虚幻c++ 拼接宏指令与TEXT宏
这是拼接宏函数!
理解一下!
#include <queue>
#include <string>
#include <iostream>
#include <list>
using namespace std;
/*
看这里,我们是定义了两个数,一个是X,一个是T
相当于创建函数一样!只不过是写在第一行里面!
int Getnum(){
return num;
}
换过来就是,把X当做num,把T当做类型,##是拼接符号
T Get##X(){
return X;
}
写在一行就是T Get##X(){return X;} //注意别漏掉逗号了
*/
#define MAKEPRO(X,T) T Get##X(){return X;}
class A {
private:
int num = 1777;
public:
MAKEPRO(num, int);
};
int main() {
A a;
cout << a.Getnum() << endl;
system("pause");
return 0;
}
多重定义!
可以同时设置get,set的函数!只需要设置一次就行了!
#include <queue>
#include <string>
#include <iostream>
#include <list>
using namespace std;
/*
看这里,我们是定义了两个数,一个是X,一个是T
相当于创建函数一样!只不过是写在第一行里面!
int Getnum(){
return num;
}
换过来就是,把X当做num,把T当做类型,##是拼接符号
T Get##X(){
return X;
}
写在一行就是T Get##X(){return X;} //注意别漏掉逗号了
*/
#define MAKEPRO(X,T) T Get##X(){return X;}\
void Set##X(T a) { X=a;}
class A {
private:
int num = 1777;
public:
MAKEPRO(num, int);
};
int main() {
A a;
a.Setnum(50);
cout << a.Getnum() << endl;
system("pause");
return 0;
}
所以说呢!
其实宏拼接可以做很多东西!
其实宏定义就是用来替换的!他只能用来替换,某种程度来说,它会导致代码累赘!
文本替换!
别用函数的思维来套它就行了!