template<class Rawr>
class TestContains;
template <class T>
class TestStore//: public TestContains
{
public:
TestStore(T first, T second, T W, T H)
{
x = first;
y = second;
Width = W;
Height = H;
TestContains<T> a(x, y, Width, Height);
*b = a;
}
~TestStore() {};
T x;
T y;
T Width;
T Height;
TestContains<T>* GetRect();
protected:
private:
TestContains<T> *b;
};
CPP
template<class T>
TestContains<T>* TestStore<T>::GetRect()
{
return &b;
}
テストに含まれるもの
template<class Rawr>
class TestContains
{
public:
TestContains(Rawr first, Rawr second, Rawr W, Rawr H)
{
x = first;
y = second;
Width = W;
Height = H;
}
~TestContains(){};
template <class T>
bool Contains(T Mx, T My)
{
if (Mx >= x && Mx <= x + Width && My >= y && My <= My + Height)
return true;
return false;
}
Rawr x;
Rawr y;
Rawr Width;
Rawr Height;
///friend?
template<class T>
friend class TestStore;
protected:
private:
};
実装
TestStore<int> test(0, 0, 100, 100);
if (test.GetRect().Contains(mouseX, mouseY))
{
std::cout << "Within 0, 0, 100, 100" << std::endl;
}
とにかく...だから私はこれをコンパイルすることはできません
/home/chivos/Desktop/yay/ShoeState.cpp||メンバー関数内'virtualvoid ShoeState :: GameLoop(GameEngine *)':| /home/chivos/Desktop/yay/ShoeState.cpp|51|エラー:'test.TestStore :: GetRect with T=int'のメンバー'Contains'のリクエスト。これは非クラスタイプ'TestContains*'|です。|| ===ビルドが完了しました:1エラー、0警告=== |
私は長い間これをいじっていました、そしてそれは私を悩ませ始めています!笑、誰かが私が間違っていることを知っていますか?