0

ファイルからデータを読み込み、それらからオブジェクトを作成するプログラムを作成しました。ただし、それらの値は変化する可能性があるため、一定量まで拡張できる配列を作成しました。上記をコンストラクターに渡そうとすると、問題が発生します。また、私が理解していることから、これをはるかに簡単にするベクトルを使用することは想定されていません。

                    //bunch of code to read in data from the file similar to this below
        getline (readfile, typea);

                    //code determining what each data type is.          

readMedia >>NSA_Value;
for (int i=0; i<=NSA_Value; i++){
getline(readMedia, supporting_actorsa[i]); //this is the array I'm using that can grow a bit to accommodate.

Vhs initial = Vhs(typea, a, b, c, supporting_actorsa[10]); //the constructor ive removed most of the other things to make it more readable. 

これは、オブジェクトの作成時に呼び出すcppファイルです。

#include "Vhs.cpp"


Vhs::Vhs (string type, string a1, string b1, string c1, supporting_actorsa1[10])
{
}
Vhs::Vhs(void)
{
}


Vhs::~Vhs(void)
{
}   

これは.hファイルです

#pragma once
class Vhs
{

public:

    Vhs(void);
    Vhs (string type, string A2, string B2, string C3, string supporting_actorsA3[10]);
~Vhs(void);


};  

すべての変数が存在します。すべての宣言を削除して、見栄えを良くしました。助けてくれてありがとう

4

1 に答える 1

0

次のようにC配列を渡すことができます。

#include <iostream>
#include <string>
using namespace std;
class Vhs {
public:
    Vhs (string type, string A2, string B2, string C3, 
         string *supporting_actorsA3, int n); 
};  
Vhs::Vhs (string type, string a1, string b1, string c1, 
          string *supporting_actorsa1, int n) {
  for (int i = 0; i < n; i++) {
    cout << supporting_actorsa1[i] << endl;
  }
}

int main()
{
  string supporting_actorsa[1024];
  int num_actors;
  num_actors = 2;
  supporting_actorsa[0] = "1";
  supporting_actorsa[1] = "2";
  Vhs initial = Vhs("typea", "a", "b", "c", supporting_actorsa, 
      num_actors);
    return 0;
}
于 2012-12-03T01:27:57.060 に答える