Wie würde ich auf meinen Vektor in aDie.h von aHisto.h, vorzugsweise nicht als Funktion erklärt? Sobald mein Vektor in meiner Histo.h ist, möchte ich in der Lage sein, ihn zu verändern, die Größe zu ändern und ihn einfach zu manipulieren, wie auch immer ich es auswählen möchte. Ich habe nur Probleme mit Fehlermeldungen in VS.C++ Zugriff auf meinen Vektor in einem anderen Headerfile und 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
}
Sie können mit 'aDie :: myV' darauf zugreifen, was ist das Problem eigentlich? Was hast du versucht? Warum funktioniert es nicht für dich? –
Jede erbende Klasse erhält eine eigene Kopie der Variablen der Elternklasse, also sollte man mit 'this-> myV' oder auch nur' myV' darauf zugreifen können. – callyalater
@callyalater das funktioniert und lässt mich tatsächlich debuggen, aber wenn ich 'cout << myV.at (3);' Ich bekomme eine Null, obwohl diese Nummer nicht 0 ist – user6124417