永发信息网

C++ 使用new运算符申请两个匿名对象

答案:2  悬赏:20  手机版
解决时间 2021-02-06 23:05
#include // 包含头文件iostream
using namespace std; // 使用命名空间std
class Engineer
{
public:
Engineer();
Engineer(int pId,char* pName,char* pPosition);
void setEngineer(int pId,char* pName,char* pPosition);
~Engineer();
void printEngineer();
private:
int Id;
char* Name;
char* Position;
};
Engineer::Engineer ()
{
int i=1;
}
Engineer:: Engineer (int pId,char* pName,char* pPosition)
{
int j=1;
}
void Engineer:: setEngineer (int pId, char* pName, char* pPosition)
{
Id=pId;
Name=new char[strlen(pName)+1];
if(Name!=0)
strcpy(Name,pName);
Position=new char[strlen(pPosition)+1];
if(Position!=0)
strcpy(Position,pPosition); //Engineer的成员函数setEngineer的实现
}
Engineer::~ Engineer ()
{
int k=1;//Engineer的析构函数的实现
}
void Engineer::printEngineer ()
{
cout<<"Name:"<}
int main()
{
Engineer e[4];
e[0].setEngineer(1001,"王含","讲师"); //这些信息换成班上同学
e[1].setEngineer(1002,"张青","讲师");
e[2].setEngineer(1003,"赵菁","副教授");
e[3].setEngineer(1004,"姚琳","教授");
Engineer * pE1 =new Engineer (1005,"方伟","副教授");
Engineer * pE2 =new Engineer (1006,"黄玲","教授");

e[0].printEngineer ();
e[1]. printEngineer ();
e[2]. printEngineer ();
e[3]. printEngineer ();

pE1->printEngineer ();
pE2->printEngineer ();

delete pE1, pE2;
return 0;
}
到Engineer * pE1 =new Engineer (1005,"方伟","副教授");程序就运行不了了,不是很懂Engineer * pE1 =new Engineer (1005,"方伟","副教授");pE1->printEngineer ();
这两句,求解答。
最佳答案
首先我真的想打死你,简直在逗我。试了下程序,老说访问越界。下面是解释。
//创建一个指向Engineer对象的指针,new是在堆区创建对象,并返回地址。创建对象会先调
//构造函数
Engineer * pE1 =new Engineer (1005,"方伟","副教授");
//pE1 ->等价于 (*pE1). 表示访问pE1指向的对象的printEnginrer();函数成员
pE1->printEngineer ();

然后你为什么会错?因为你创建Engineer e[4] 对象数组中的对象是空的,调用无参构造函数
然后你e[0].setEngineer(1001,"王含","讲师"); 调用的成员函数赋值。

new只会调用构造函数(3参),而你的构造函数没写赋值语句或者初始化列表。
也就说你调用new 并没有给指向对象赋值, pE1,pE2对象的数据成员是空的。
所以访问越界
最后说一句,数据成员最好是private。
全部回答
当然不对了,赋值就是从一个对象赋值给另一个,参数只能是一个本类对象
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
冰点水地址好找么,我有些事要过去
如何选择一个好的牙科医院
彼此陪伴了三年英文
冰点水(龙华大道中国移动东)地址好找么,我有
{芙姿雅}是个什么东东啊?/、??有没有知道的
海上有AB两个工厂相距120米,有轮船和快艇同向
永和怎么去啊,有知道地址的么
欢乐颂2魏国强真的有目的吗
京港澳高速公路建设费每公里多少钱
现在怎样理财好
四川师范大学成龙校区我想知道这个在什么地方
请问金田一少年事件薄真人版(堂本刚版?)恐
为什么苹果5S最近几天登录微信会出现系统检测
冰点水地址在什么地方,想过去办事
急急急!哪些美术线上培训机构谁给推荐几个?
推荐资讯
全年工作的主要成绩及成功之处?
计算机一级考试报名号怎么查啊?谢谢
潮汪村这个地址在什么地方,我要处理点事
谁有流量宝的兑换码,谢谢,
tuse完整形式是什么
甲公司库存A产成品的月初数量为1000台,月初
游恩施大峡谷可以只游七星寨景点吗?怎么游省
1根铁丝做成1个棱长8厘米的正方体框架,如果用
希望电脑地址在哪,我要去那里办事
关于各洲分界线的正确叙述是:     A. 南
文斌汽车修配地址有知道的么?有点事想过去
我用手机号注册的淘宝号如果手机号没用了那注
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?