出了点问题,或者我';我没有遵循什么-Embarcadero RAD Studio 10.4 < > C++解释和属性功能有什么变化吗? 简单的例子: class TMyLittleClass { private: TDateTime myDateTime; protected: TDateTime getMyDateTime(); void setMyDateTime(TDateTime); public: TMyLittleClass(){myDateTime=Now();}; __property TDateTime MyDateTime = {read = getMyDateTime,write=setMyDateTime}; };

出了点问题,或者我';我没有遵循什么-Embarcadero RAD Studio 10.4 < > C++解释和属性功能有什么变化吗? 简单的例子: class TMyLittleClass { private: TDateTime myDateTime; protected: TDateTime getMyDateTime(); void setMyDateTime(TDateTime); public: TMyLittleClass(){myDateTime=Now();}; __property TDateTime MyDateTime = {read = getMyDateTime,write=setMyDateTime}; };,c++,properties,C++,Properties,在代码下面的某个地方,我们打了一个电话: //它工作正常 TDateTime dttTemp; dttTemp.Val = 0; 然而,类似这样的情况: TMyLittleClass *myClass = new TMyLittleClass(); myClass->MyDateTime.Val =0; 触发器编译器抗议“[C++错误]:表达式不可赋值”。。。为什么? 使用“Use”classic Borland compiler“设置编译正常,使用clang编译会导致问题。提前感谢您

在代码下面的某个地方,我们打了一个电话: //它工作正常

TDateTime dttTemp;
dttTemp.Val = 0;
然而,类似这样的情况:

TMyLittleClass *myClass = new TMyLittleClass();
myClass->MyDateTime.Val =0;
触发器编译器抗议“[C++错误]:表达式不可赋值”。。。为什么?

使用“Use”classic Borland compiler“设置编译正常,使用clang编译会导致问题。提前感谢您提供的任何提示。因为我需要对早期代码进行升级,而这些代码不一定是我自己编写的,而且有很多这样的花絮。
虽然我理解了所有其他的困惑,但由于C++的C++语言的不同,我不太清楚这个问题。

fWW,t不一致(请参见页面底部):
tmyllittleclass myClass=new-tmyllittleclass();
不合法。
new-tmyllittleclass()
创建指向
TMyLittleClass
的指针,但是
TMyLittleClass myClass
是一个对象,而不是指针。@PeteBecker您当然是对的。正确地说,它应该是TMyLittleClass*myClass=new TMyLittleClass();这可以通过“->”而不是“>”看到。“用过。然而,问题不在于写入*myClass的正确性,而在于无法写入“myClass->MyDateTime.Val=0”;当然可以读取“myClass->MyDateTime.Val=0”。在embarcadero文件中,关于Clang enh之间的差异。C++编译器和PREV Gen C++编译器。我没有看到任何关于___________________________________。