我想用#declare“自动”创建变量。所以,我不想多次输入新变量的类定义(实际上我是在声明多维向量,而不是简单的整数......)
我有这个代码:
#define inti(aa)(int (aa)=3)
...
inti(a);
但是编译器说:
“错误:'a' 未在此范围内声明”
是否有可能在 C++ 中解决这个问题?请帮忙!
我想用#declare“自动”创建变量。所以,我不想多次输入新变量的类定义(实际上我是在声明多维向量,而不是简单的整数......)
我有这个代码:
#define inti(aa)(int (aa)=3)
...
inti(a);
但是编译器说:
“错误:'a' 未在此范围内声明”
是否有可能在 C++ 中解决这个问题?请帮忙!
采用:
#define inti(aa) int aa=3
那是因为
(int aa=3);
是非法的,更何况你在那里。
实际上,擦掉它。不要使用宏。只需以老式的方式声明您的变量即可。
实际上我是在声明多维向量
+1 用于说明您的实际问题的问题。这就是 atypedef
的用途。
typedef std::vector<std::vector<int> > MDVector;
MDVector multiDimensionalVector;
您可以使用 atypedef
而不是#define
这样的:
typedef complexClassName<PossiblyWithManyTemplateParameters> Name
Name var1;
Name var2;
Name var3;
如果您不想多次输入长名称。