C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[6]: VC++でのクラスの配列宣言


(過去ログ 84 を表示中)

[トピック内 7 記事 (1 - 7 表示)]  << 0 >>

■49978 / inTopicNo.1)  VC++でのクラスの配列宣言
  
□投稿者/ みね (3回)-(2010/05/25(Tue) 21:36:37)

分類:[C++/CLI] 

Visual Stdio 2010 C++ Expressを使用しています。
windowsフォームアプリケーションを作成しています。

クラスを配列で宣言する方法として、以下の方法を使用しました。

クラスAAAとクラスBBBがあり、クラスBBB内でクラスAAAの配列を宣言する方法です。

//----------------------------------
public ref class A
{
private:
	int num;
};

public ref class B
{
private:
	array<AAA^>^ CCC;
public:
	BBB(){
		CCC = gcnew array<AAA^>(4);
	}
};

//----------------------------------
上記のソースで記入しているのですが、わからない事があります。

array<AAA^>^ CCC;での1個目の^、2個目の^、
また、CCC = gcnew array<AAA^>(4);での^は、それぞれどのような意味として記述しているのしょうか

^で参照を渡すと習ったのですが、それぞれの^がなんの参照を渡しているのか、わかりません・・・

各^についての使用意味を教えていただけますでしょうか

引用返信 編集キー/
■49979 / inTopicNo.2)  Re[1]: VC++でのクラスの配列宣言
□投稿者/ επιστημη (2497回)-(2010/05/25(Tue) 22:11:11)
επιστημη さんの Web サイト
> ^で参照を渡すと習ったのですが、それぞれの^がなんの参照を渡しているのか、わかりません・・・

C/C++でのポインタ(*)だと思ってかまわんです。

class A
{
private:
  int num;
};
 
class B
{
private:
  array<AAA*>* CCC;
public:
  BBB(){
    CCC = new array<AAA*>[4];
  }
};

だったら理解できます?

引用返信 編集キー/
■49983 / inTopicNo.3)  Re[2]: VC++でのクラスの配列宣言
□投稿者/ みね (4回)-(2010/05/25(Tue) 22:52:55)
>array<AAA*>* CCC;
>CCC = new array<AAA*>[4];

CCCの前についてる*はポインタとして、Cを宣言しているからであってますか?

AAAの後についてる*が、わからないです・・・
引用返信 編集キー/
■49984 / inTopicNo.4)  Re[3]: VC++でのクラスの配列宣言
□投稿者/ επιστημη (2498回)-(2010/05/25(Tue) 22:59:58)
επιστημη さんの Web サイト
>CCC = new array<AAA*>[4];
> AAAの後についてる*が、わからないです・・・

array<int> なら intを要素とするarray です。
その要領でいけば
array<AAA*> は AAA* を要素とする array となります。

array<AAA^>^ CCC = gcnew array<AAA^>(4); // 4つのAAA^を格納するarrayを取得
CCC[0] = gcnew AAA(); // AAAを取得しCCC[0]にセット
CCC[1] = gcnew AAA(); // 以下同文
CCC[2] = gcnew AAA(); // 以下同文
CCC[3] = gcnew AAA(); // 以下同文

引用返信 編集キー/
■49993 / inTopicNo.5)  Re[4]: VC++でのクラスの配列宣言
□投稿者/ みね (5回)-(2010/05/26(Wed) 02:21:31)
返信、遅くなってすいません・・・

No49984 (επιστημη さん) に返信
> >CCC = new array<AAA*>[4];
>>AAAの後についてる*が、わからないです・・・
>
> array<int> なら intを要素とするarray です。
> その要領でいけば
> array<AAA*> は AAA* を要素とする array となります。

array<AAA>では、どうしてダメなのですか?
AAA*というのは、どういう意味の要素でしょうか・・・
引用返信 編集キー/
■49994 / inTopicNo.6)  Re[5]: VC++でのクラスの配列宣言
□投稿者/ επιστημη (2499回)-(2010/05/26(Wed) 05:02:34)
επιστημη さんの Web サイト
> array<AAA>では、どうしてダメなのですか?
> AAA*というのは、どういう意味の要素でしょうか・・・

習っているのなら先生に訊いてください。

引用返信 編集キー/
■49995 / inTopicNo.7)  Re[6]: VC++でのクラスの配列宣言
□投稿者/ 774RR (510回)-(2010/05/26(Wed) 08:39:57)
元発言者氏は C++ や C (のポインタ) に親しい人なのかな?
親しいのであれば
native なオブジェクトへのポインタは * で
manage なオブジェクトへのハンドルは ^ で
表記する、と覚えればよい。

用語「manage なオブジェクトへのハンドル」ってなんじゃらほい?
というレベルであるなら、多分こういう場で質疑応答してもついていけない気が・・・
wikipedia の説明で理解できる?
http://ja.wikipedia.org/wiki/C%2B%2B/CLI
出来ないようなら C++ CLI ハンドル でぐぐって出てくる解説ページを熟読かな。

# オラは native 主義者なので C++/CLI は使わないが・・・
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -