我面临一个非常令人费解的问题。我正在尝试使用变量作为参数来构造对象。
请看一下这段代码:
#include <iostream>
class A {
public:
A() : val(0) {};
A(int v) : val(v) {};
private:
int val;
};
main() {
int number;
A a; /* GOOD, object of type A, created without arguments */
A b(2); /* GOOD, object of type A, created with one argument */
A c(); /* BAD, C++ thinks this is declaration of
a function returning class A as a type */
A(d); /* GOOD, object of type A again; no arguments */
A(number); /* BAD, tries to re-declare "number" as object of type A */
}
我想我确实理解为什么可以创建对象“a”、“b”和“d”,而其他对象则不能。
但我真的需要最后一个声明的语法,即
A(number);
创建一个临时对象,作为参数传递给另一个对象。
知道如何解决它吗?
Kind regards