//创建一个指向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,
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)