64,654
社区成员
发帖
与我相关
我的任务
分享
谢谢回复。主要是我现在碰到编译错误,说不能给READ-ONLY变量赋值,目前不知道原因出在哪里。比如在那个PUBLIC函数里, 我使用了如下赋值:DATA.x=e;DATA.y=f;z=g;z1=h;然后编译,给我报了四个错误,都是不能给READ-ONLY变量赋值。但是我用PLACEMENT NEW那种重新调用构造函数就可以运行,不过我看百度上很多人都是PLACEMENT NEW这种用法不值得推荐,所以现在很疑惑。 你这里调用的是placement new,但你需要先析构原对象,再重新构造新的对象。一种更好的解决方法就是直接使用原来的对象,直接为需要修改的成员变量重新赋值即可
你这里调用的是placement new,但你需要先析构原对象,再重新构造新的对象。一种更好的解决方法就是直接使用原来的对象,直接为需要修改的成员变量重新赋值即可
要先析构。CLASS::setnew() { A.~A(); new (&A) JOB(e,f,g,h); }
CLASS::setnew() {
A.~A();
new (&A) JOB(e,f,g,h);
}