私が作成したときに、それの関数のいずれかを呼び出すクラスを作成しようとしていますが、コンパイル時に、私は次のエラーを取得しています:コンパイルエラー: `エラー:暗黙的-declared`の定義
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
がここにありますヘッダ:
#include "PuzzleSolution.h"
PuzzleSolution::PuzzleSolution()
{
addRow();
}
void PuzzleSolution::addRow()
{
this->sol.emplace_back();
}
私が間違って何をやっている:
#include <vector>
using namespace std;
class PuzzleSolution {
private:
vector<vector<unsigned int>> sol;
public:
explicit PuzzleSolution();
void addRow();
};
ここでは、cppのファイルですか?
いいえ、わかりません。 [あなたのコードはGCC 7.2でビルドされています](http://coliru.stacked-crooked.com/a/c0b3282021c70176) – StoryTeller
g ++を使用しています - 4.8.2と思います。私はビルドして特定のマシン上で動作させる必要があります@StoryTeller –
あなたは 'PuzzleSolution'を定義する別のヘッダでコンパイルしているようです。エラーはあなたがここで与えたヘッダーで意味をなさない。 – Quentin