使用构造函数创建对象时出错
Error when creating an object with constructor
我在使用以下代码时遇到错误:
class Box {
public:
Box (int);
};
Box::Box (int a) {
//sample code
}
int main() {
class Anything {
Box box (5); // error: expected identifier before numberic constant
// error: expected ',' or '...' before numeric constant
};
}
这个错误出现在我在"任何东西"课下填写的五个字上。如果我只是写,这个问题就消失了。
Box box (5);
周围没有任何东西类。
如有任何帮助,我们将不胜感激。
内部Anything
,
Box box(5);
对于声明成员变量并初始化它无效。
您可以使用:
class Anything {
Box box;
public:
Anything : box(5) {}
};
或
class Anything {
Box box = Box(5);
};
或
class Anything {
Box box{5};
};
原因是这里的box
:
class Anything {
Box box (5);
};
不是对象,而是类的成员。您需要在构造函数中初始化它(请参见此处(。如果你想创建一个box
,你需要做这样的事情:
class Anything {
Box box;
public:
Anything() : box(5) {}
};
然后你可以创建一个任意对象,比如:
Anything anything;
并且它将包含一个用5初始化的Box
对象box
。
当然,所有这些都是毫无意义的,因为你实际上无法用Anything
做任何事情。它没有其他数据成员或函数
相关文章:
- 使用基类指针创建对象时,缺少派生类析构函数
- 如何创建对象函数指针C++映射?
- C++创建对象数组
- 在 C++ 的 Switch Case 中创建对象后对对象调用方法
- 如何获取在 main() 函数中构造的类的创建对象?
- 基于文件中的条目创建对象
- 错误:创建对象后无法分配区域
- C++ 通过输入创建对象
- 堆还是堆栈用于创建对象?
- 使用 C++ 创建对象数组
- 使用unique_ptr创建对象
- C++递归地在类构造函数中创建对象
- 通过向构造函数其他对象引用页面来创建对象
- ReactiveX (rx) - 在对象上应用可观察对象,而不是在可观察对象中创建对象
- 如何在OSX上正确创建C++对象文件(.o)
- 尝试使用构造函数创建对象时出错
- 尝试创建对象时出错
- 在 NS-3 中创建对象数组时出错 (C++)
- 当我尝试创建对象数组时出错
- 使用构造函数创建对象时出错