public struct MyStruct1 {//これはマネージド型ではないのか?
方法: クラスと構造体を定義および使用する (C++/CLI) に記述がありますが、Managed 型の struct の定義は以下のように記述します。
public value struct MyStruct1{ ... }
このブラウザーはサポートされなくなりました。
Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。
下のコードで、(1)、(2) いずれもコンパイルが通りません。解決方法を教えて下さい。
//マネージドクラスの中に、MyStruct1型のメンバーを置き、クラスの外からMyStruct1型のメンバーにアクセスしたい
public ref class MyClass1 {
public:
MyStruct1 ^struct1;// (1)コンパイルが通らない 「C++ 非 マネージド クラスを識別するハンドルは使用できません」
//↑ マネージドクラスのメンバーにマネージド構造体を使ったら何がいけないのですか?
MyStruct1 struct2;// (2)コンパイルが通らない 「マネージド クラスのメンバーを非 マネージド クラス型にすることはできません」
MyClass1() {//コンストラクター
struct1 = new MyStruct1(0.1F);//コンパイルは通る
}
float p1() {//クラスの外からMyStruct1型のメンバーにアクセス
return struct1.x;
}
~MyClass1() {//書き方 これで正しいのかも分からない。
struct1 = nullptr;
delete struct1;
}
```};
public struct MyStruct1 {//これはマネージド型ではないのか?
public:
float x;
MyStruct1(float _x) {x = _x;} //コンストラクター
public struct MyStruct1 {//これはマネージド型ではないのか?
方法: クラスと構造体を定義および使用する (C++/CLI) に記述がありますが、Managed 型の struct の定義は以下のように記述します。
public value struct MyStruct1{ ... }