gpt4 book ai didi

c++ - 构造函数错误

转载 作者:行者123 更新时间:2023-11-30 04:39:03 25 4
gpt4 key购买 nike

我有这个类头

//header for class.
#ifndef Container_H
#define Container_H

#include <iostream>
using namespace std;


const int DEFAULT=32;

class Container{
public:
Container(int maxCapacity = DEFAULT);
~Container();
void insert(int item, int index);
void erase(int index);
int size()const;
private:
int sizeC;
int capacityC;
int * elements;
};
void info();
#endif

和这个源文件

#include "container.h"


Container::Container(int maxCapacity = DEFAULT){
int y;
}
void Container::insert(int item, int index){
int x;
}

当我编译它时,我收到以下错误消息

test.cpp:4: error: default argument given for parameter 1 of `Container::Container(int)'
container.h:12: error: after previous specification in `Container::Container(int)

我做错了什么?

最佳答案

没有参数的函数仍然需要括号:

Container::Container() {
int y;
}

根据您的 header ,您似乎只是忘记了 maxCapacity 参数,实际上应该是:

Container::Container(int maxCapacity) {
int y;
}

(如果您也询问警告,这是不言而喻的——您声明了一个 int x 但没有对其执行任何操作)

编辑:那么现在您已经编辑它以完全更改错误。现在这是一个错误,因为您在两个地方都指定了默认参数;你只应该在声明中指定它。在实际实现中将其省略,如我上面的第二个示例

关于c++ - 构造函数错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2642927/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com