我已经编写了以下代码。函数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”指向的对象类型?
谢谢大家的耐心和帮助我:)