我正在尝试创建一个在创建时调用其中一个函数的类,但在编译时遇到以下错误:
JSON.stringify
以下是标题:
g++ -std=c++11 -Wall -Wextra -Werror -pedantic-errors -DNDEBUG -c src/PuzzleSolution.cpp
src/PuzzleSolution.cpp:7:32: error: definition of implicitly-declared 'PuzzleSolution::PuzzleSolution()'
PuzzleSolution::PuzzleSolution()
^
src/PuzzleSolution.cpp:12:6: error: prototype for 'void PuzzleSolution::addRow()' does not match any in class 'PuzzleSolution'
void PuzzleSolution::addRow()
^
src/PuzzleSolution.h:19:10: error: candidate is: void PuzzleSolution::addRow(std::vector<unsigned int>&)
explicit PuzzleSolution();
^
src/PuzzleSolution.cpp:17:48: error: no 'void PuzzleSolution::addElement(unsigned int)' member function declared in class 'PuzzleSolution'
void PuzzleSolution::addElement(unsigned int id)
^
make: *** [PuzzleSolution.o] Error 1
这是cpp文件:
#include <vector>
using namespace std;
class PuzzleSolution {
private:
vector<vector<unsigned int>> sol;
public:
explicit PuzzleSolution();
void addRow();
};
我做错了什么?
答案 0 :(得分:0)
代码原样没有错误。它汇编了GCC 4.8.2
确保您的头文件确实与您链接的内容相同。最有可能包含的标题与您在此处发布的标题不同。
附注:通常,将using namespace std;
放在头文件中是一种不好的做法。
答案 1 :(得分:0)
发现问题:
src
文件夹中有一个名为PuzzleSolution.h.gch
@Quatin和@StoryTeller帮助我理解这是一个预编译的头文件,编译器继续使用它。
删除后,项目编译并执行