1

我是 C++ 新手,需要一些语法帮助。

有人可以帮我弄清楚为什么我的构造函数不起作用吗?我正在创建 Stack 类的实现,除了我的 primeStack 只存储素数。我想要默认值 25。

每当我声明一个新的 primeStack 对象而不传递任何值时,我都会收到错误消息。25 不应该作为默认值工作吗?

在 .h 文件中:

primeStack(unsigned int size=25);

在 primeStack.cpp 中:

primeStack::primeStack(unsigned int size=25)
{
    this->size = size;
    data = new int[size];
    top = 0;
}
4

2 回答 2

4

如果要在.h 文件中指定默认值,您仍然必须提供参数名称。

primeStack(unsigned int size = 25);
于 2012-09-28T09:34:47.150 回答
3

使用完全相同的原型进行实现和定义,并为默认参数编写变量名。因此

primeStack(unsigned int size = 25);

并在头文件中包含默认参数。编译器在编译时从那里获取值。

于 2012-09-28T09:33:59.130 回答