Ich lerne C++, so ist es schwer für mich, die Fehler zu beheben, die ich habe, wenn ich dieses Programm kompiliere. Ich werde ein kleines Programm schreiben, das alle Elemente in einem int-Array ausgeben kann. Zum Beispiel hat die Klasse NumberRange zwei Argumente a und b, wenn a 5 ist und b 9 ist, dann würde der Konstruktor ein Array zuweisen und es mit den Werten 5, 6, 7, 8, 9 in dieser Reihenfolge füllen. Ich habe meinen Code folgende: der Kopf NumberRange.h
Fehler beim Zugriff auf Mitglieder einer Instanz einer Klasse
class NumberRange {
public:
NumberRange(int a, int b);
virtual ~NumberRange();
void Print(int a, int b);
private:
int *range_;
int size;
};
Die .cc Datei Datei NumberRange.cc
ist:
#include <iostream>
#include "numberrange.h"
using namespace std;
NumberRange::NumberRange(int a, int b) {
if (a > b) {
cout << "a must be equal or less than b" << endl;
}
}
NumberRange::~NumberRange() {
//implementation
}
void NumberRange::Print(int a, int b) {
this->size = b - a + 1;
this->range_[0] = a;
for (int i = 0; i < this->size; i++) {
this->range_[i] = a + i;
cout << this->range_[i] << endl;
}
}
int main() {
NumberRange *numberrange;
numberrange->NumberRange (5, 9);
numberrange->Print(5,9);
}
Und ich habe die Fehler, wenn ich das Programm zu kompilieren: cannot refer to type member 'NumberRange' in 'NumberRange' with '->' numberrange->NumberRange (5, 9);
member 'NumberRange' declared here class NumberRange {
Ich weiß nicht, die Fehler Bedeutung und wie Kann ich dieses Programm reparieren? Ich frage mich, ob die Logik richtig ist oder nicht. Kann mir jemand helfen? Ich danke dir sehr.
Jede Tutorial über OOP in C++ sollte diese Frage beantworten können. – pingul
Sie möchten vielleicht ein Buch aufheben, um die Grundlagen zu lernen: http://StackOverflow.com/q/388242/1025391 – moooeeeep