在线求助!!!有关C++中,list容器push_back的问题,代码如下:
#include<iostream>#include<list>#include<string>usingnamespacestd;classCourse{public:...
#include<iostream>#include<list>#include<string>using namespace std;
class Course{ public: void read () {cin>>i>>marks;} int printMark()
{ return marks; } private: string i; int marks; };int main(){list<Course*> aa; list<Course*> ::iterator it; Course* a= new Course() ; do{
a->read(); aa.push_back(a); }while((a->printMark())>=0);for (it =aa.begin();it!=aa.end();++it) { cout<<"\t"<<(*it)->printMark()<<endl; } delete a; }
当我输入 aa 4 aa gjkaf -9 是 输出的却是 -9 -9 -9
在for (it =aa.begin();it!=aa.end();++it)处设置断点,查看后如下
为什么aa中每个对象元素都被附上gjkaf -9 了?
还有截屏里的 "ptr CXX0030: 错误: 无法计算表达式的值" 是什么意思? 展开
class Course{ public: void read () {cin>>i>>marks;} int printMark()
{ return marks; } private: string i; int marks; };int main(){list<Course*> aa; list<Course*> ::iterator it; Course* a= new Course() ; do{
a->read(); aa.push_back(a); }while((a->printMark())>=0);for (it =aa.begin();it!=aa.end();++it) { cout<<"\t"<<(*it)->printMark()<<endl; } delete a; }
当我输入 aa 4 aa gjkaf -9 是 输出的却是 -9 -9 -9
在for (it =aa.begin();it!=aa.end();++it)处设置断点,查看后如下
为什么aa中每个对象元素都被附上gjkaf -9 了?
还有截屏里的 "ptr CXX0030: 错误: 无法计算表达式的值" 是什么意思? 展开
展开全部
追问
你好,你这样do{..}while();每循环一次就会新申请一块内存,而上一次循环申请的内存还未释放吗?有没有办法能输出你截屏的那个样子,但是却不会导致内存泄露?我尝试把delete a放在do{..}while();中,即:
do{ a=new Course;
a->read();
aa.push_back(a);
delete a;
}while((a->printMark())>=0);
却不能得到正确的结果。我是初学者,很多东西都不能,望赐教,谢谢。
Storm代理
2023-08-29 广告
2023-08-29 广告
"StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,I...
点击进入详情页
本回答由Storm代理提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询