私は以下の問題が既に発生しています。私はstackoverflowで少し読んでいると私はtypedefを使用しているが、私は私を助けていないポイントist。いくつかの助けを得ることを楽しみにしてエラー:C++エニュメレーションの呼び出しで一致する関数がありません
:)
Align_vector.h:
#include <utils/vector_2d.h>
class Vector_2d;
namespace Utils {
class Align_vector : public Vector_2d {
protected:
bool check_range(int x, int y);
public:
typedef enum {left, right, up, down} Alignment;
Align_vector(Alignment alignment);
void set_alignment(Alignment alignment);
Alignment get_alignment();
};
} /* namespace Utils */
Align_vector.cc:ここ
#include <utils/align_vector.h>
namespace Utils {
Align_vector::Align_vector(Alignment alignment) {
this->alignment = alignment;
}
void set_alignment(Alignment alignment) {
Align_vector::alignment = alignment;
}
Alignment get_alignment() {
return Align_vector::alignment ;
}
bool check_range(int x, int y) {
switch (Align_vector::alignment) {
case Align_vector::left:
if (x == -1 && y == 0) {
return true;
} else {
return false;
}
break;
case Align_vector::right:
if (x == 1 && y == 0) {
return true;
} else {
return false;
}
break;
case Align_vector::down:
if (x == 0 && y == -1) {
return true;
} else {
return false;
}
break;
case Align_vector::up:
if (x == 0 && y == 1) {
return true;
} else {
return false;
}
break;
default:
return false;
break;
}
}
} /* namespace Utils */
はエラーです:
/utils/align_vector.cc:14:47: error: no matching function for call to ‘Utils::Vector_2d::Vector_2d()’ Align_vector::Align_vector(Alignment alignment) {
'typedef enum {...}整列;'私にちょっと奇妙に見えます。どこからこれを取得しましたか?なぜ列挙型を列挙できないのですか? – user463035818
フォーラムでは、これがより良い解決策になると言いましたが、解決策を講じても同じエラーが発生しています。 – kellerprogger
もっと良い解決策は何ですか? Btwにはコード内に他のものがありません。 'Align_vector :: alignment'とは何でしょうか? – user463035818