c++动态创建对象数组问题

nclude<iostream>#include<string>usingnamespacestd;classEmployee{private:stringname;st... nclude<iostream>
#include<string>
using namespace std;
class Employee{
private:
string name;
string address;
string city;
string postcode;
public:
Employee():name("a"),address("b"),city("c"),postcode("d"){}
Employee(string n,string a,string c,string p):name(n),address(a),city(c),postcode(p){
cout<<"End Entering"<<endl;}
~Employee(){cout<<"End"<<endl;}
void setName(){
string n;
cout<<"Enter Nmae:";
cin>>n;
name=n;}
void display(){
cout<<"Name:"<<name<<endl;
cout<<"Address:"<<address<<endl;
cout<<"City:"<<city<<endl;
cout<<"Postcode:"<<postcode<<endl;
cout<<"Displaying all"<<endl;}
};
int main(){
Employee * p=new Employee[2];
p[0].display();
cout<<endl;
p[1].display();
delete p;
cout<<endl;
p=new Employee("e","r","t","y");
p[0].display();
cout<<endl;
p[1].display();
delete p;
return 0;
}
图片提示是为什么错的?
展开
 我来答
IT孤鹜
推荐于2018-04-12 · TA获得超过4198个赞
知道大有可为答主
回答量:3960
采纳率:71%
帮助的人:3585万
展开全部
#include<iostream>
#include<string>
using namespace std;
class Employee{
private:
string name;
string address;
string city;
string postcode;
public:
Employee():name("a"),address("b"),city("c"),postcode("d"){}
Employee(string n,string a,string c,string p):name(n),address(a),city(c),postcode(p){
cout<<"End Entering"<<endl;}
~Employee(){cout<<"End"<<endl;}
void setName(){
string n;
cout<<"Enter Nmae:";
cin>>n;
name=n;}
void display(){
cout<<"Name:"<<name<<endl;
cout<<"Address:"<<address<<endl;
cout<<"City:"<<city<<endl;
cout<<"Postcode:"<<postcode<<endl;
cout<<"Displaying all"<<endl;}
};
int main(){
Employee * p=new Employee[2];
p[0].display();
cout<<endl;
p[1].display();
delete[] p; //错误,这是一个数组要加[]
cout<<endl;
p=new Employee("e","r","t","y"); //现在的p不是数组了,那下面这样都是错误的
p->display(); //这里p是一个指向对象的指针
cout<<endl;
//p[1].display();
delete p;
return 0;
}
更多追问追答
追问
第一次删除p后,还能让它再指向数组吗?
追答
那你要分配两个类内存就可以了

p=new Employee[2];
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xialuji123
2013-06-05 · 超过19用户采纳过TA的回答
知道答主
回答量:115
采纳率:0%
帮助的人:34.5万
展开全部
自己断点调试看看,先找出是哪句出了问题,再针对错误的地方修改!
更多追问追答
追问
怎么断点调试?自学,不了解……
追答
先建议你把vc++这个工具的调试和看内存部分好好看看!
先设置断点insert breakpoint
再点go
再调出watch和memory仔细一步步运行观察!
一定要会这个哦!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友cd3d6c4
2013-06-05 · TA获得超过315个赞
知道小有建树答主
回答量:262
采纳率:0%
帮助的人:280万
展开全部
应该是内存益处,看下初始化,或者赋值问题
希望能帮到你,哪里不清楚再问。
如果有帮到你,请选我答案吧!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式