豆豆首页 > 技术教程 > 程序设计 > C/C++

在STL列表(Lists)中插入不同类型的对象

http://tech.ddvip.com 2007年03月17日 04:36:33    赵湘宁
 
 

  [解答]:

  为了实现动态绑定,你需要使用基类的地址或指针。如果你使用的是一个基类指针,就不要用“.”符号来访问成员函数,而要用“->”,也就是说用    pMyCell->SetCell("myCell");代替    (*pMyCell).SetCell("myCell");更重要的是,不要使用迭代器访问向量元素,而要使用重载的“[]”操作符vector < synObject * >::iterator ThisVector= MyVector.begin();
for (int i =0; ThisVector!=MyVector.end(); ++i)
{
 cout << MyVector[i]->GetClass();
}
另外,我对你的代码有一些风格上的建议,这很重要:

  首先,我注意到你的类没有声明任何虚拟成员,甚至连虚析构器都没有,这有可能导致未定义的行为。这使我怀疑使用继承特性的意义。此外,你不应该用传值的方式从成员函数返回串对象。而是应该返回常量数据的地址。

  其次,记住要用delete销毁分配的对象。

[责任编辑:editorforddvip]

点击搜索更多"STL"相关信息
正在加载评论...
请您留言
网友昵称: 匿名发表(无需注册)
 
请输入验证码:  
如果您还不是豆豆会员,欢迎注册
 
请您注意
· 遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。
· 豆豆网拥有管理笔名和留言的一切权利。
 
 
相关链接
专题文章推荐