C++/CLI -- 访问结构成员
C++/CLI -- Access Structure Member
我正在尝试访问 .NET 结构成员,但即使对于这个简单示例,编译也失败:
.h:
using namespace System::Drawing;
namespace MyNamespace{
public ref class MyClass{
public:
MyClass();
static const System::Drawing::Size MinimumSize = System::Drawing::Size(20,20);
}
}
。.cpp:
#include "MyInclude.h"
MyClass::MyClass(){
int i = MinimumSize.Width;
// .....
}
将 MinimumSize.Width 分配给局部变量 i 的语句编译失败:
- "没有函数"System::D rawing::Size::Width::get(("的实例与参数列表和对象匹配(对象具有阻止匹配的类型限定符(对象类型为 const System::D rawing::size
当我删除声明中的"const"时,赋值编译没有错误,但我想保持值公开和只读。
有人可以给我一个提示如何指定吗?
我刚刚尝试过:"initonly"在我尝试将MinimumSize.Width分配给"i"时会产生两条消息:
- 警告 C4395 'System::D rawing::Size::Width::get':成员函数将在 initonly 数据成员 'MBcppLibrary::D rForm::MinimumSize' 的副本上调用(如 德米特里·诺金/汉斯·帕桑特(
加上消息
- "不允许获取 initonly 字段的地址">
我正在使用这个解决方案:
- 只需保留"静态常量"声明
- 将类型强制转换应用于赋值语句
int i = (( System::Drawing::Size)MinimumSize).Width;
此强制转换摆脱了"const",编译时没有任何错误/警告,并按预期执行。还是这有点太用力了?
问候保罗黑客
相关文章:
- 具有结构成员char数组的sscanf
- 仅使用结构名称访问结构成员
- 使用 structType*& 赋给结构成员
- 使用结构成员指针在C++中填充结构
- 聚合初始化,将成员指针设置为同一结构成员
- 为什么结构化绑定不使用"auto&"返回对结构成员的引用,而是返回成员本身
- 是否可以将结构数组别名为结构成员数组?
- 结构成员在访问时被清除
- 如何指示结构成员没有锯齿?
- 为什么继承的结构成员在联合中无法访问?
- 尝试在 qml 中访问结构成员的 QList
- C++/CLI -- 访问结构成员
- 调用在类中声明的结构成员
- 对结构成员的临时绑定引用
- 无法使用 strcpy 将字符串复制到静态结构成员
- 为什么类成员数据必须是静态的才能被模板化类的模板化结构成员访问
- 填充模板化结构类型的结构成员
- C/C++intellisense 0.26.1不显示结构成员列表
- 在源文件中创建具有结构成员的结构
- 如何访问结构成员作为指针