C++ cli 智能感知错误是什么;非值类型中不允许使用公共数据成员”;什么意思? 我正在接管一个C++ CLI项目,其中一个文件“代码> StaseScult.xAML.H./Cuth>正在VisualStudio 2013中引发一个智能感知错误。下面是一段代码: public ref class StartScreen sealed { public: StartScreen(); void SetApp(App^ app); void ShowProgressRing(); void HideProgressRing(); internal: static float imagePercentage; ....

C++ cli 智能感知错误是什么;非值类型中不允许使用公共数据成员”;什么意思? 我正在接管一个C++ CLI项目,其中一个文件“代码> StaseScult.xAML.H./Cuth>正在VisualStudio 2013中引发一个智能感知错误。下面是一段代码: public ref class StartScreen sealed { public: StartScreen(); void SetApp(App^ app); void ShowProgressRing(); void HideProgressRing(); internal: static float imagePercentage; ....,c++-cli,intellisense,c++-cx,C++ Cli,Intellisense,C++ Cx,是最后一行造成了问题图像百分比抛出错误 108 IntelliSense: public data members are not allowed in non-value types 这意味着什么?我应该如何修复它(如果它编译时没有编译器错误的话)?我猜这只是IntelliSense中的一个bug。C++/CLI和C++/CX共享语法,但似乎有些规则不同。在这种情况下,C++/CX不允许公共/内部字段: C++/CLI没有这样的限制(这就是它为您编译的原因)。Intellisense

是最后一行造成了问题<代码>图像百分比抛出错误

108 IntelliSense: public data members are not allowed in non-value types

这意味着什么?我应该如何修复它(如果它编译时没有编译器错误的话)?

我猜这只是IntelliSense中的一个bug。C++/CLI和C++/CX共享语法,但似乎有些规则不同。在这种情况下,C++/CX不允许公共/内部字段:

C++/CLI没有这样的限制(这就是它为您编译的原因)。Intellisense可能只是(错误地)在C++/CLI和C++/CX之间共享此规则


如果你真的想要一个内部可见的字段,我会忽略Intellisense。如果它困扰您,您可以将其更改为属性,这就是您的解决方法。

将此成员设置为私有,并添加内部Get/Set属性。谢谢Alex。我把它改成了私人的。它只在相关的cpp文件中使用,所以我不必担心内部访问器和设置器。