2016-04-08 2 views
-1

aHieo.hからaDie.hで宣言されたベクターに、どうすれば関数としてではなく、どうすればアクセスできますか?いったん私のベクトルが私のHisto.hに入ったら、私はそれを修正し、サイズを変更し、それを操作することができるようにしたいと思います。私はちょうどVSのエラーメッセージのトラブルがあります。C++は別のヘッダファイルとcpp内の私のベクトルにアクセスします

aDie.h

#define aDie_H 
    #pragma once 
    #include <vector> 
    #include <iostream> 
    class aDie { 
    public: 
     aDie(); 
     void numRolls(); 
     void getSeed(); 
     void roll(); 
     void myVector(); //just gives my vector values 
     void Print(); 
     std::vector<int> myV; //declare my vector, it has values stored from void myVector(); 

    private: 
     int i = 0; 
     int Rolls; 
     int dSeed; 
     int die1; 
     int die2; 
     int sum; 

    }; 

aHisto.h

#define aHistogram_H 
#include "aDie.h" 

class aHistogram : public aDie{ 
public: 
//adds a pointer to my vector so I can access and modify it anywhere on this header 
    aHistogram(); //default const 
    void getVector(); //does stuff with vector 

private: 
    int i = 0; 
    int min; 
    int max; 
}; 

aHisto.cpp

#include "aHistogram.h" 
#include "aDie.h" 
#include <iostream> 
#include <vector> 
using namespace std; 

aHistogram::aHistogram() { //default constructor 
    min = 0; 
    max = 0; 

} 
void aHistogram::getVector() { 

//does stuff with vector here 

    } 
+0

'aDie :: myV'を使用してアクセスできますが、実際問題は何ですか?何を試しましたか?なぜそれがあなたのために働かないのですか? –

+0

それぞれの継承クラスは、親クラスの変数のコピーを取得するので、 'this-> myV'または単に' myV'でアクセスできるはずです。 – callyalater

+0

@callyalaterこれは動作しますが、実際にはデバッグできますが、もし私が '' myV.at(3); '0ではないにもかかわらず、その数値はゼロになります – user6124417

答えて

0

aDieからaHistogram継承するため、スコープ解決演算子を使用します。

または継承アクセスレベルのためthisを使用できます。

void aHistogram::getVector() { 
     aDie::myV->something(); 
     //Or use this pointer 
     this->myV->something(); 
} 
関連する問題