什么时候应该动态建立对象

xuruichen 2008-12-13 07:33:42
一个输入操作符重载
类:
class CheckoutRecord
{
public:
.....
private:
double book_id;
string title;
Date date_borrowed;
Date date_due;
pair<string,string> borrower;
vector<pair<string,string>* > wait_list;
};
重载操作符:
istream& operator>>(istream& in, CheckoutRecord& obj)
{
in>>obj.book)id>>obj.title>>obj.date_borrowed>>obj.date_due>>obj.borrower.first>>obj.borrower.second;
if(!in)
{
obj=CheckoutRecord();
return in;
}
//给vector容器输入成员的时候,需要先将vector中的成员都删除。然后再输入。由于vector中元素是指针所以需要
动态建立相应的pair对象。
obj.wait_list.clear();//删除vector中的所有元素
while(in)
{
pair<string,string>* p=new pair<string,string>
in>>p->first>>p->second;
if(!in)
{
return in;
}
obj.wait_list.push_back(p);
}
return in
}
//我想问问大家,什么时候应该建立动态对象,什么时候需要?
...全文
91 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
lann64 2008-12-13
  • 打赏
  • 举报
回复
简单说就是需要用动态的时候用动态。

例如:无法事先知道基类指针指向的是什么类型(是基类还是派生类),那只好用动态了。
还有:对象生命期跟静态作用域不吻合。

等等,难以穷举。
门后面的猫 2008-12-13
  • 打赏
  • 举报
回复
应该根据不同的用处使用对象和指针
对象在编译的时候确定,而指针在运行的时候才能确定指向的对象
e_sharp 2008-12-13
  • 打赏
  • 举报
回复
UP
xuruichen 2008-12-13
  • 打赏
  • 举报
回复
谢谢zhangci226的指点,望更多高手进言!
张赐 2008-12-13
  • 打赏
  • 举报
回复
编译是不能确定的,在运行时才能确定的东西往往需要使用动态的
nullah 2008-12-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ztz0223 的回复:]

个人认为你想挑战自我的时候就可以用动态了

这个一般没有强制限制说什么时候要用动态的吧

只是在类或者结构体里面用自身类型的时候要用指针或者引用什么的
[/Quote]
呵呵
就呆在云上 2008-12-13
  • 打赏
  • 举报
回复

个人认为你想挑战自我的时候就可以用动态了

这个一般没有强制限制说什么时候要用动态的吧

只是在类或者结构体里面用自身类型的时候要用指针或者引用什么的

65,208

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧