用vector装载自定义类时的copy constructor的问题(急,请帮帮忙)

sylang 2004-03-17 01:19:42
自己定义了一个名为Vehicle的类,有一个用来初始化的constructor
Vehicle::Vehcile
然后程序中定义了用来装Vehicle的vector,
vector<Vehicle> AllVeh(5);
在代码中定义了一个Vehicle对象,准备将它装入vector AllVeh时出错,
for(int i = 0; i < 5; i++)
{
vehicle myVeh(...);
AllVeh[i] = myVeh; //出错
}
在循环前已经用reserve()指定了vector的capacity, 看帮助中说要在vector中装载自定义的类,这个类必须有copy constructor的,不知道是不是这方面的原因出错,请给我解释一下这个copy constructor.

另外,如果出错的那行代码换为"AllVeh.push_back(myVeh);"则可以成功运行,不过在第二次进入这个循环时(此for循环外还有一层循环)就会报错,对这个错误完全没有头绪,似乎还是出在这个自定义类上的问题.
...全文
40 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
痞子酷 2004-03-17
  • 打赏
  • 举报
回复
55555555555555555555

vector<Vehicle> AllVeh;
for(int i = 0; i < 5; i++)
{
vehicle *myVeh=new vehicle();
AllVeh.push_back(myVeh);
}
...
vehicle *myVeh =AllVeh[1];
myVeh->DoSomethine();
...


sylang 2004-03-17
  • 打赏
  • 举报
回复
谢谢,用push_back(*myVeh)确实可以,但是第二个问题还是出现,第二次进入这个for循环执行push_back的时候就会报错,似乎cpu窗口显示的是进栈指令push出错,我怀疑是自定义类的问题或者是在vector中装载自定义类时出的问题,不过找不到原因,谁有头绪?

13,873

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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