2016-04-08 31 views
-1

aDi.h'de bildirilmiş olan vektörüme aHisto.h'den, tercihen bir işlev olarak değil, nasıl erişirim? Vektörüm Histo.h'ımdayken onu değiştirebilirim, boyutunu değiştirebilir ve sadece manipüle edebilirim. VS'de hata mesajlarıyla uğraşıyordum.C++ vektörü başka bir başlık dosyasında ve cpp'ye eriş

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' kullanarak erişebilirsiniz, sorun aslında nedir? Ne denedin? Neden senin için çalışmıyor? –

+0

Her devralma sınıfı, ana sınıfın değişkenlerinin kendi kopyasını alır, bu yüzden buna “myV” veya hatta “myV” ile erişebilmeniz gerekir. – callyalater

+0

@callyalater bu çalışmalara ve aslında hata ayıklamamıza izin verir ama eğer << lvVatırsam (3); 'sıfır olsa da sıfır alırım – user6124417

cevap

0

Kullanım kapsamı çözünürlük operatörü aDie den aHistogram devralır, çünkü.

veya devralma erişim düzeyi nedeniyle this kullanabilirsiniz.

void aHistogram::getVector() { 
     aDie::myV->something(); 
     //Or use this pointer 
     this->myV->something(); 
} 
İlgili konular