我想用#declare“自动”创建变量。所以,我不想多次输入新变量的类定义(实际上我是在声明多维向量,而不是简单的整数......)
我有这段代码:
#define inti(aa)(int (aa)=3)
...
inti(a);
但是编译器说:
“错误:'a'未在此范围内声明”
有可能在C ++中解决这个问题吗?请帮忙!
答案 0 :(得分:8)
<德尔>使用:德尔>
#define inti(aa) int aa=3
那是因为
(int aa=3);
是非法的,甚至更多的是你在那里。
实际上,抓一点。 不要使用宏。只是声明你的变量是老式的方式。
实际上我正在声明多维向量
+1表示您的实际问题。这就是typedef
的用途。
typedef std::vector<std::vector<int> > MDVector;
MDVector multiDimensionalVector;
答案 1 :(得分:2)
您可以使用typedef
代替#define
,如下所示:
typedef complexClassName<PossiblyWithManyTemplateParameters> Name
Name var1;
Name var2;
Name var3;
如果您不想多次输入长名称。