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で質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# Windows Formアプリからコンソールを呼び出して文字を出力させたい 8 2023/05/09 10:53
- C言語・C++・C# c言語の問題です 課題1 (二分探索木とセット) 大きさ size の配列 array を考える。す 2 2023/01/10 21:08
- C言語・C++・C# 10個の実数に対する降順ソート結果を出力するプログラムを作りたいのですが、以下のプログラムをどう直せ 1 2022/07/09 22:16
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- C言語・C++・C# C# DatagridviewにExcelシートを反映するとエラーが出る 2 2023/05/06 17:12
- C言語・C++・C# C#テキストボックスの文字を配列にいれてその後表示する 4 2022/07/17 04:47
- C言語・C++・C# C++プログラミングコードにポリモーフィズムを取り入れ方を教えてください。 2 2023/06/09 11:17
- C言語・C++・C# PC画面を録画するプログラムでdllの読み込みエラー 1 2023/04/22 08:31
- C言語・C++・C# C++初心者です stirng 2 2022/09/20 20:43
- JavaScript EasyUIのSubGrid(jquery)におけるObjectに入れた連想配列について 1 2022/05/02 11:21
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ポインター引数の関数でコンパ...
-
stable diffusionのエラー
-
C言語についてです! 同じ年の...
-
matlabのソースコードをpython...
-
(C言語・配列)date[i]の分散...
-
FFTがうまくできない
-
データの値の近いものをグルー...
-
【Excel VBA】10進数を2進数に...
-
ビットデータのチェック方法
-
C言語の勉強しています。すみま...
-
エクセルVBAで16の16乗を正確に...
-
printfの%eで指数部分の桁数を...
-
C言語の構造体にてバブルソート...
-
離散フーリエ変換のプログラム...
-
画像処理のチェーンコード
-
int型(2バイト)データの分割
-
matlabでのRRI検出
-
関数マクロの書き方
-
C言語でのLinuxとwindows共通の...
-
C言語でPBYTE型からDOUBLE型へ変換
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
stable diffusionのエラー
-
ポインター引数の関数でコンパ...
-
printfの%eで指数部分の桁数を...
-
パイソン、データーサイエンス...
-
エクセルVBA:日付データの変換...
-
C#でのswitch文
-
int型(2バイト)データの分割
-
CreateProcessでの環境変数の設...
-
【Excel VBA】10進数を2進数に...
-
python 気象データの取得
-
テキストファイルの結合について
-
RegQueryValueExでの2バイト文字
-
linuxのシェルでファイル名に先...
-
'dataType' 引数を Null にする...
-
C言語についてです! 同じ年の...
-
オセロゲーム 2次元配列で困...
-
PINVOKEで構造体配列をマーシャ...
-
matlabのソースコードをpython...
-
C言語の勉強しています。すみま...
-
System.Collections.ArrayList ...
おすすめ情報