2

我想用#declare“自动”创建变量。所以,我不想多次输入新变量的类定义(实际上我是在声明多维向量,而不是简单的整数......)

我有这个代码:

#define inti(aa)(int (aa)=3)

...

inti(a);

但是编译器说:

“错误:'a' 未在此范围内声明”

是否有可能在 C++ 中解决这个问题?请帮忙!

4

2 回答 2

8

采用:

 #define inti(aa) int aa=3

那是因为

(int aa=3);

是非法的,更何况你在那里。

实际上,擦掉它。不要使用宏。只需以老式的方式声明您的变量即可。

实际上我是在声明多维向量

+1 用于说明您的实际问题的问题。这就是 atypedef的用途。

typedef std::vector<std::vector<int> > MDVector;
MDVector multiDimensionalVector;
于 2012-05-30T19:07:40.973 回答
2

您可以使用 atypedef而不是#define这样的:

typedef complexClassName<PossiblyWithManyTemplateParameters> Name
Name var1;
Name var2;
Name var3;

如果您不想多次输入长名称。

于 2012-05-30T19:09:54.660 回答