VC++/CLIで、オブジェクト型の配列data、ArrayData(String^ s, int a, int d, double c)でコンストラクタをつくり
array<Object^>^ data = gcnew ArrayData(String^ s, int a, double b);
でインスタンス化したいのですがうまくいきません。
さらに、他クラスから、d->data[i].aで、data[i]」の配列のうち、整数型変数aを参照したいたいと思っていますがそれも上手くいきません。
例えば
data[0]= gcnew ArrayData("山田",30,45.2);
data[1]= gcnew ArrayData("高橋",66,43.2);
data[2]= gcnew ArrayData("田中",86,62.7);
のdata配列を用意します.
VC++2005で作成したファイルを載せますので、それに対応したコード(.hファイルと.cppファイル)を教えてくれるとありがたいです。
このままでは、エラーです。内容は、メンバ変数、ドット演算子など。
--File Name:ArrayData.h--
#pragma once
using namespace::System;
ref class ArrayData
{
public:array<object^>^ data;
public:
ArrayData(String^ name,int data1,double data2);
};
--File Name:ArrayData.cpp--
#include "StdAfx.h"
#include "ArrayData.h"
ArrayData::ArrayData()
{
data= gcnew array<Object^>(5);
data[0]= gcnew ArrayData("山田",30,45.2);
data[1]= gcnew ArrayData("高橋",66,43.2);
data[2]= gcnew ArrayData("田中",86,62.7);
}
--File Name Form1.h--
#pragma once
#include"ArrayData.h"
namespace TestDataArray {
using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
/// <summary>
/// Form1 の概要
///
/// 警告: このクラスの名前を変更する場合、このクラスが依存するすべての .resx ファイルに関連付けられた
/// マネージ リソース コンパイラ ツールに対して 'Resource File Name' プロパティを
/// 変更する必要があります。この変更を行わないと、
/// デザイナと、このフォームに関連付けられたローカライズ済みリソースとが、
/// 正しく相互に利用できなくなります。
/// </summary>
public ref class Form1 : public System::Windows::Forms::Form
{
public:
Form1(void)
{
InitializeComponent();
//
//TODO: ここにコンストラクタ コードを追加します
//
ArrayData^ abc = gcnew ArrayData(); //ArrayDataクラスのインスタンス化
int bee= abc->data[0].data1; //data[0]配列のdata1の値(=30)を参照
String^ cee=bee.ToString(); //beeを文字列化
MessageBox::Show(cee); //メッセージボックスにceeを表示
}
protected:
/// <summary>
/// 使用中のリソースをすべてクリーンアップします。
/// </summary>
~Form1()
{
if (components)
{
delete components;
}
}
private:
/// <summary>
/// 必要なデザイナ変数です。
/// </summary>
System::ComponentModel::Container ^components;
#pragma region Windows Form Designer generated code
/// <summary>
/// デザイナ サポートに必要なメソッドです。このメソッドの内容を
/// コード エディタで変更しないでください。
/// </summary>
void InitializeComponent(void)
{
this->components = gcnew System::ComponentModel::Container();
this->Size = System::Drawing::Size(300,300);
this->Text = L"Form1";
this->Padding = System::Windows::Forms::Padding(0);
this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
}
#pragma endregion
};
}
--File Name:TestDataArray.cpp--
// TestDataArray.cpp : メイン プロジェクト ファイルです。
#include "stdafx.h"
#include "Form1.h"
using namespace TestDataArray;
[STAThreadAttribute]
int main(array<System::String ^> ^args)
{
// コントロールが作成される前に、Windows XP ビジュアル効果を有効にします
Application::EnableVisualStyles();
Application::SetCompatibleTextRenderingDefault(false);
// メイン ウィンドウを作成して、実行します
Application::Run(gcnew Form1());
return 0;
}
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
... やりたいのはこんな↓ことですか?
// --- ArrayData.cpp ---
#include "stdafx.h"
using namespace System;
public ref class MyData {
private:
String^ name_;
double data1_;
double data2_;
public:
MyData(String^ name, double data1, double data2) : name_(name), data1_(data1), data2_(data2) {}
String^ name() { return name_; }
double data1() { return data1_; }
double data2() { return data2_; }
};
public ref class ArrayData {
public:
array<MyData^>^ data;
ArrayData() {
data = gcnew array<MyData^>(5);
data[0]= gcnew MyData(L"山田",30,45.2);
data[1]= gcnew MyData(L"高橋",66,43.2);
data[2]= gcnew MyData(L"田中",86,62.7);
}
};
int main() {
ArrayData^ ad = gcnew ArrayData();
for each ( MyData^ data in ad->data ) {
if ( data != nullptr ) {
Console::WriteLine(L"{0} : {1}/{2}", data->name(), data->data1(), data->data2());
}
}
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
char型配列をString型にしたい
C言語・C++・C#
-
【C++/CLI】int型からString型への変換
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
stable diffusionのエラー
-
Excel VBA グラフ作成のとき...
-
ポインター引数の関数でコンパ...
-
VisualBasicでレジストリキーの...
-
【Excel VBA】10進数を2進数に...
-
メモリ領域の確保の仕方
-
printfの%eで指数部分の桁数を...
-
linuxのシェルでファイル名に先...
-
C#でのswitch文
-
マクロの組み方を教えてください
-
エクセルシート名の制限を変更...
-
UTF-8で5~6バイトになる文字コ...
-
Excel VBA メール作成について ...
-
バイト列とバイナリ列の違いが...
-
10Mバイトて文字数に すると何...
-
Excel 1セル当りの文字数が2...
-
COBOLのCOMP形式について
-
DataGridViewの特定列に入力さ...
-
char str[256]の256の意味は?
-
日付時刻を4バイトに
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
stable diffusionのエラー
-
int型(2バイト)データの分割
-
printfの%eで指数部分の桁数を...
-
ポインター引数の関数でコンパ...
-
C#でのswitch文
-
エクセルVBA:日付データの変換...
-
C++/CLIのオブジェクト型配列
-
【Excel VBA】10進数を2進数に...
-
'dataType' 引数を Null にする...
-
pythonでDBのカラム名で取得し...
-
c言語での wavファイルの編集(...
-
linuxのシェルでファイル名に先...
-
MySQLに登録すると文字化け
-
&ReadParseでフォームの値が取...
-
途中経過も表示するプログラム
-
PICNICのVB制御プログラム
-
10個の実数に対する降順ソート...
-
ビットデータのチェック方法
-
c言語 Bitについて
-
PINVOKEで構造体配列をマーシャ...
おすすめ情報