在构造函数中设置默认参数?句法

时间:2012-09-28 09:31:34

标签: c++ syntax constructor default

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

2 个答案:

答案 0 :(得分:4)

如果要在 .h文件中指定默认值,则仍需提供参数名称。

primeStack(unsigned int size = 25);

答案 1 :(得分:3)

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

primeStack(unsigned int size = 25);

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