1
我已經寫了下面的代碼。功能func()打印標題和數據。函數返回通用類型數據
class ICell
{
public:
wstring header;
virtual void Fetch() = 0;
};
template <class T>
class Cell : public ICell
{
public:
//wstring header;
T data;
void Fetch()
{
wcout<< header << L": ";
cout<<data<<endl;
}
// implementation of cell methods
};
class Row
{
public:
vector <ICell *> cells;
};
有什麼辦法可以在函數中返回數據而不是打印嗎?如果是這樣,哪部分代碼應該被修改? 在此先感謝。
int main()
{
Cell<int>c1;
Cell<double>c2;
c1.header = L"Roll", c1.data = 100;
c2.header = L"CGPA", c2.data = 3.5;
Row r;
r.cells.push_back(&c1);
r.cells.push_back(&c2);
vector <ICell *>::iterator it;
for(it=r.cells.begin();it!=r.cells.end();it++)
{
//checkt type of it wherther it points Cell<int> or Cell<double>
}
return 0;
}
我在這裏改變了我的問題。在循環內部的main()中,我如何檢查'it'指向的對象類型?
謝謝大家的耐心和幫助我:)
將'void Fetch();'改爲'T Fetch();' – 2013-04-25 11:44:53
您可能會返回一串正在輸出的數據,也許? – 2013-04-25 11:44:56
@AlokSave:如果'T'和'header'都是作爲一個單元返回的話,則不應該... – 2013-04-25 11:45:30