C++初心者によるクラスの配列化についての質問

このQ&Aのポイント
  • C++初心者がクラスの配列化について困っています。
  • 上記のコードの(1)〜(5)を配列にしたいが、どのように定義すればよいかわかりません。
  • NULLで初期化されたAAAAAポインタを配列にしたいです。
回答を見る
  • ベストアンサー

お世話になります。

お世話になります。 C++初心者です。 C++のクラスの配列化についてご質問させていただきます。 class AAAAA : public bbbbb { AAAAAItem* ccccc; public: AAAAA(char* pdt, cds* cds); AAAAA(); ~AAAAA(); void asi(AAAAAItem* psi); bool rsi(AAAAAItem* psi); AAAAAItem* GetFirstItem(); }; AAAAA *aaaaa1 = NULL; …(1) AAAAA *aaaaa2 = NULL; …(2) AAAAA *aaaaa3 = NULL; …(3) AAAAA *aaaaa4 = NULL; …(4) AAAAA *aaaaa5 = NULL; …(5) 上記コードの(1)~(5)を配列にしたく考えております。 しかしながら、どのように定義するとよいかわからず、困っております。 下記のようにも考えましたが、いまいち自身が持てません。 AAAAA *pSequence[] = {NULL,NULL,NULL,NULL,NULL}; AAAAA pSequence[] = {NULL,NULL,NULL,NULL,NULL}; 恐れ入りますが、ご教授いただきたく宜しくお願い申し上げます。

noname#164045
noname#164045

質問者が選んだベストアンサー

  • ベストアンサー
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

AAAAA *型を複数用意するのですから AAAAA *pSequence[] = {NULL,NULL,NULL,NULL,NULL}; になります。

noname#164045
質問者

お礼

ご回答ありがとうございました。 おかげで作業を進めることが出来ました。 Cの基本的なことを理解しておりませんで、今後は精進したいと思います。

その他の回答 (2)

  • D-Matsu
  • ベストアンサー率45% (1080/2394)
回答No.3

クラスだから何か特別ということはありません。 普通にポインタの配列と考えれば、前者が正しいのは即座にわかるかと思いますが。

  • ohtawa
  • ベストアンサー率23% (9/38)
回答No.2

配列の配列 あるいは ポインタのポインタ などのキーワードでググると多数の例がでると思います ちょっと時間ないので

関連するQ&A

  • csvデータの番号付加について。

    例題の csvデータの内容が 配列1 aaaaa aaaaa aaaaa bbbbb bbbbb bbbbb bbbbb bbbbb bbbbb ccccc ccccc だった場合、配列が1つ増え ↓ 配列1 配列2 aaaaa 00001-1 aaaaa 00001-2 aaaaa 00001-3 bbbbb 00002-1 bbbbb 00002-2 bbbbb 00002-3 bbbbb 00002-4 bbbbb 00002-5 ccccc 00003-1 ccccc 00003-2 管理番号が増えていきます。 Sub main() Dim branch As Long Dim count As Long Dim i As Long Dim tmp As Long tmp = FreeFile Dim data As Variant With CreateObject("Scripting.FileSystemObject").GetFile("C:\データ.csv").OpenAsTextStream data = Split(.readall, vbCrLf) End With branch = 1 count = 1 Open "C:\出力データ.csv" For Output As #tmp Print #tmp, data(i) & vbTab & Format(branch, "00000") & vbTab & count For i = LBound(data) + 1 To UBound(data) If data(i) = data(i - 1) Then count = count + 1 Else branch = branch + 1 count = 1 End If Print #tmp, data(i) & vbTab & Format(branch, "00000") & vbTab & count Next i Close #tmp End Sub 例えば、タブ区切りの配列が元データで5つあり 配列5番目だけを指定し、例題のようにcsvを作成したいのですが 配列の宣言はまだしておりません。 アドバイスいただけないでしょうか。 よろしくお願いいたします。 元データ 配列1 配列2 配列3 配列4 配列5 a 1 c a aaaaa a 2 c b aaaaa a 3 c c aaaaa a 4 c d bbbbb a 5 c e bbbbb a 6 c f bbbbb a 7 c g bbbbb a 8 c h bbbbb a 9 c i ccccc a 0 c j ccccc 出力データ 配列1 配列2 配列3 配列4 配列5 配列6 a 1 c a aaaaa 00001-1 a 2 c b aaaaa 00001-2 a 3 c c aaaaa 00001-3 a 4 c d bbbbb 00002-1 a 5 c e bbbbb 00002-2 a 6 c f bbbbb 00002-3 a 7 c g bbbbb 00002-4 a 8 c h bbbbb 00002-5 a 9 c i ccccc 00003-1 a 0 c j ccccc 00003-2

  • テーブル結合のSQL文について

    はじめまして、よろしくお願いします。 テーブルA、B、Cから情報を取得し、下記のSELECTイメージを表示させたいのですが、 どのようなSQLを記述すれば良いのかわからず、困っております。 どなたかご教示頂けますでしょうか。 SELECTイメージ  日付      キー  ------------ -------------  9/1      AAAAA  9/1      CCCCC  9/2      AAAAA  9/2      CCCCC  9/3      AAAAA  9/3      BBBBB  9/3      CCCCC  9/4      AAAAA  9/4      BBBBB  9/4      CCCCC テーブルA  日付      キー  ------------- -------------  8/31      AAAAA  8/31      CCCCC テーブルB  日付      キー  ------------ -------------  9/1      AAAAA  9/3      BBBBB  9/4      CCCCC テーブルC  日付  -------------   ・   ・   ・   8/31   9/1   9/2   9/3   9/4   9/5   9/6   ・   ・   ・

  • 連想配列を変数にする?

    こんにちは。 質問タイトルが変かもしれません。。。 xmlから受け取ったデータをphpで表示してます。 ・・・xmlデータの受取(?)は他社にお願いしており、私はphpでの表示のみなのでデータそのものは分かりません。 [aaaaa][bbbbb][ccccc][ddddd][depday] [aaaaa][bbbbb][ccccc][ddddd][cityname] [aaaaa][bbbbb][ccccc][ddddd][b][depday] [aaaaa][bbbbb][ccccc][ddddd][b][cityname] のように非常に長い連想配列があり、一番最後の[depday]と[cityname]は常に同じです。あまりにも長いので $hairetsu_1 = [aaaaa][bbbbb][ccccc][ddddd]; echo $hairetsu_1[depday]; echo $hairetsu_1[cityname]; $hairetsu_2 = [aaaaa][bbbbb][ccccc][ddddd][b]; echo $hairetsu_2[depday]; echo $hairetsu_2[cityname]; のように表示させる事は出来るのでしょうか? とんちんかんな質問だったらお許しください。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • 3つ以上の外部結合から抽出するSQL構文

    次の3つのTABLEから期待する結果(結果を参照)を導きたいのですがJOIN等を使用しても期待と異なります。SQLを教えて下さい。結果は、SELECTでもVIEWでも構いません。一つのSQLでなくても構いません。 ●テーブル構成 テーブル名 - TB_A- -----TB_B--- ----TB_C----         ------ ------------- ------------- 列名     EMPNO EMPNO DATA1 EMPNO DATA2 レコード1   000001 000002 AAAAA 000001 AAAAA レコード2   000002 000002 BBBBB 000002 BBBBB レコード3   000003 000002 CCCCC 000003 CCCCC ●結果 列名     EMPNO DATA1 DATA2 レコード1   000001 ???????? AAAAA レコード2   000002 AAAAA BBBBB レコード3 000002 BBBBB ???????? レコード4   000002 CCCCC ???????? レコード5   000003 ???????? CCCCC

  • 特定文字列を除外する方法(grep -v xxx の代替案)

    ファイルhoge.txtに aaaaa bbbbb . . . xxxxx と書かれているとします ここから特定の文字列を除外するとき egrep -v "aaaaa|bbbbb" hoge.txt とすれば、aaaaaとbbbbbは除外され表示されますよね これは"aaaaa|bbbbb"の部分で除外する対象を 指定するわけですが、出来れば"|"のような セパレータではなく、単純に xgrep -v aaaaa bbbbbと書きたいのですが このような書き方ってありますか? 除外対象となる文字列が都度変わる(つまり あるときはaaaaaとbbbbbを除去したいし、別の 場面ではcccccとdddddとeeeeeを除去したいなど) ため、除去対象を配列として保持して xgrep -v $exclude のように書くことができれば 配列を変えるだけでロジックに変更が起きないと 思っているのですがうまいやり方が見つかりません

  • C++ builder text

    C++ builder で例えばTRectangleで背景を作った後TTextで文字を書いたとき、 Text1->Text="AAAAA";Text1->Text="BBBBB";Text1->Text="CCCCC"; とボタンか何かで順次変化させればそのままAAAAA BBBBB CCCCCと文字が 正しく表示されるのですが TRectangleのRectangle1->Canvas->FillTextで文字を書いたときはAAAAAの上にBBBBB、CCCCCと重なって書かれてしまうのですがText1->Textにできないでしょうか? Canvas->Clear()とかでは真っ黒になってしまいます。 ようは背景をそののままで文字だけ変化するようにしたいのですが方法分かりますか?

  • グループ化+最大値

    お世話になっております。GomiYasikiです。 以下のような場合で、フィールドAが同じ中のフィールドBが最大値のものを抽出する場合はどのようにすればよいのでしょうか? お手数ですが、宜しくお願い致します。 テーブル名:テーブルA フィールドA,フィールドB,フィールドC AAAAA,1,ABC AAAAA,2,XYZ BBBBB,1,ABC BBBBB,2,DEF CCCCC,1,AAA ↓結果 AAAAA,2,XYZ BBBBB,2,DEF CCCCC,1,AAA

  • COBOLプログラムからC関数を呼び出す方法

    Cプログラムをプリコンパイルした後、コンパイルした際にできる「.obj」ファイルを、ひとかたまりのライブラリファイルにすることは可能でしょうか? 「aaaaa.pc」 →prec→ 「aaaaa.c」 →cl→ 「aaaaa.obj」作成 「bbbbb.pc」 →prec→ 「bbbbb.c」 →cl→ 「bbbbb.obj」作成 「ccccc.pc」 →prec→ 「ccccc.c」 →cl→ 「ccccc.obj」作成 aaaaa.obj,bbbbb.obj,ccccc.obj から libraryファイル作成 もともとUNIX上でコンパイルした「.o」ファイルより「library.a」ファイルを作成し、COBOLプログラム(呼び出し元)のコンパイル時にリンクさせておりました。 それをWINDOWSで行いたいと思っております。 コンパイルはBATファイルを作成(Oracleインストール時にあった、pcmake.batをカスタマイズ)して、「prec」コマンドでプリコンパイルして、VisualStadioのC++をコマンドライン「cl -c(リンクなし)」でコンパイルして、最終的に中間ファイル「.obj」を作成しております。 ご説明が分かりにくくて申し訳ございませんが、具体的な方法・ご指摘がございましたら、宜しくお願い致します。

  • セルの値を転記

    下記のコードで sub main() Dim i As Long Dim rowToWrite As Long Dim 最終行 As Long Dim result As Variant Dim tmp As Variant Dim j As Long 最終行 = Range("B1").End(xlDown).Row result = Cells(1, 1).Resize(最終行, 2).Value For rowToWrite = 1 To 最終行 If tmp <> result(rowToWrite, 2) Then i = i + 1 j = 1 result(rowToWrite, 1) = i & "-" & j tmp = result(rowToWrite, 2) Else j = j + 1 result(rowToWrite, 1) = i & "-" & j End If Next rowToWrite Cells(1, 1).Resize(最終行, 2).Value = result End Sub Bセルの値が aaaaa aaaaa aaaaa bbbbb bbbbb bbbbb bbbbb bbbbb bbbbb ccccc ccccc だった場合 ↓ Aセル,Bセル 1-1,aaaaa 1-2,aaaaa 1-3,aaaaa 2-1,bbbbb 2-2,bbbbb 2-3,bbbbb 2-4,bbbbb 2-5,bbbbb 2-6,bbbbb 3-1,ccccc 3-2,ccccc とBセルの値が 変わったタイミングで Aセルに管理番号が増えていくのですが Cells(1, 1).Resize(lastRow, 2).Value = resultの値を 表示せずに 2次元配列として resultの値を result = 結果(debug.print 結果) としてAセルの値を 1-1 1-2 1-3 2-1 2-2 2-3 2-4 2-5 2-6 3-1 3-2 と転記したいのですがアドバイスいただけたら助かります。 よろしくお願いいたします。

  • 配列を確保したときのアドレス

    レポートなんですが 例えば、 char a[4][8]; と配列を取ったときのアドレスは、メモリにもよると思うんですが a[0][0]=aaaaa1 a[0][1]=aaaaa2 ・ ・ ・ a[0][7]=aaaaa8 a[1][0]=bbbbb1 ・ ・ a[1][7]=bbbbb8 ・ ・ となっていって、ここでa[0],a[1],a[2]・・・・のアドレスは a[0]はa[0][0]と同じで、a[1]はa[1][0]と同じなると思うんです。 それで、2次元配列a[i][j]でa[i]はどんな役割をしているかって問題にはなんと答えたらいいんでしょうか? 先頭のアドレスを表しているだけではあまりにもそっけないんでもう少しなんか書きたいのでアドバイスお願いします。

専門家に質問してみよう