在构造函数中设置默认参数?语法[关闭]

Posted

技术标签:

【中文标题】在构造函数中设置默认参数?语法[关闭]【英文标题】:Setting default arguments in constructor? Syntax [closed] 【发布时间】:2012-09-28 09:31:34 【问题描述】:

我是 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;

【问题讨论】:

primeStack(unsigned int size = 25); 如果这只是一个错字,您需要举例说明如何创建primeStack,以及错误消息是什么。 好的,现在你不能在两个地方都有=25。只需将其放在标题中即可。 投票结束,因为过于本地化。下次先贴完整代码。 【参考方案1】:

如果你想在.h文件中指定默认值,你仍然需要提供一个参数名。

primeStack(unsigned int size = 25);

【讨论】:

【参考方案2】:

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

primeStack(unsigned int size = 25);

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

【讨论】:

他们确实有相同的原型。 选词错误。已编辑。 只在标题中写入= 25

以上是关于在构造函数中设置默认参数?语法[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

C++类-使用默认参数的构造函数

C++类-使用默认参数的构造函数

Grails:在地图构造函数中设置瞬态字段

Golang中设置函数默认参数的优雅实现

Groovy循环控制 ( Java 语法循环 | 默认的 IntRange 构造函数 | 可设置翻转属性的 IntRange 构造函数 | 可设置是否包含 to 的构造函数 | 0..9 简写 )(代

在构造函数调用中设置一个短值[重复]