我來自Java背景,是C++的新手。 我有一個模板。在C++中使用模板的問題
template <class T>
class Shape {
int val,val_new;
public:
Shape(T initval)
{
val=initval;
}
T get()
{
return val;
}
void set (T newval)
{
val_new = newval;
}
void copy()
{
this.val= val_new;
}
};
有一類長方形,使用此模板
#include <iostream>
#include<math.h>
using namespace std;
class Rectangle
{
private:
Shape<TwoPoint> val;
TwoPoint newval;
public:
Rectangle(TwoPoint i)
{
val = new Shape<TwoPoint> (i);
}
Shape<TwoPoint> read()
{
return val;
}
void load(TwoPoint newval)
{
load_called=1;
this.newval=newval;
}
void increment()
{
val=val+1;
}
void decrement()
{
val= val-1;
}
void actions()
{
if (load_called)
value.set(new TwoPoint(newval));
}
};
的兩點是用於泛型類。
class TwoPoint
{
int width;
int value;
public:
TwoPoint(int v, int w)
{
value=v;
width=w;
}
TwoPoint(TwoPoint t)
{
value= t.value;
width= t.width;
}
int getWidth()
{
return width;
}
int getValue()
{
return value;
}};
但是我收到了很多像構造函數不匹配,轉換失敗等錯誤。有人能幫幫我嗎。
有喜歡
In constructor `Rectangle::Rectangle<TwoPoint>':
error: no matching function for call to Shape<TwoPoint>:: Shape()'
note: candidates are: Shape<T>::Shape<T> with [T = TwoPoint]
兩個類似的錯誤錯誤有
如果您向我們提供您送入一個編譯器的單一翻譯單元,而且它產生的錯誤信息(S)這將是更爲有用。 – PlasmaHH 2012-02-17 14:46:31
對不起。下次我發佈一個問題肯定會做。 – 2012-02-17 14:47:59
你可以編輯問題。 – PlasmaHH 2012-02-17 14:48:43