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

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

首先我真的想打死你,简直在逗我。试了下程序,老说访问越界。下面是解释。

//创建一个指向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。

匿名对象集合怎么可以给类型c1。正确写法是这样的:

var v = from p in db.SV_Parameter

where p.ParameterGroupid == Group

select new

{

ParameterId=p.ParameterId,

ParameterDesc=p.ParameterDesc,

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11778056.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存