をコンパイルする前にエラーを与えるようなコードである:それは与えテンプレートオブジェクトクラス・パラメータはここで
#include <iostream>
using namespace std;
template<class OwnerType>
class Move {
public:
Move() {}
Move(OwnerType &_owner) {
owner = &_owner;
}
void GetPosition() {
cout << owner->x << endl;
}
OwnerType *owner;
};
class Entity {
public:
int x = 50;
Move<Entity> *move;
};
int main() {
Entity en;
en.x = 77;
en.move = new Move<Entity>(en); // sign '=' is underlined by VS
en.move->GetPosition();
return 0;
}
エラー:
a value of type "Move<Entity> *" cannot be assigned to an entity of type "Move<Entity> *"
プログラムは、コンパイル期待通りに動作し、期待値を与えている、しかし、エラーまだここにいる。 これはおそらくテンプレートやコンパイルに時間がかかるものですが、実際にこのエラーが何を表しているかを知るには十分な知識がありません。
また、これは私のテストだったので、リークについて心配しないでください、エラーは私が理解していないものです。
ありがとうございます。
インテリセンスを信頼しないでください。実際にコンパイルする。 –
[OT]:プログラムがリークします。 – Jarod42
'int main {'はあなたの実際のコードのものですか? '()'が見つかりません。 –