Beim Zugriff auf die Funktionen meiner Klassenmitglieder kann ich sie nicht finden, wenn ich Zeiger verwende. Dies ist Teil eines viel größeren Projekts und hat das Problem so weit wie möglich vereinfacht. Beachten Sie, dass der Fehler innerhalb von Leere getthenumberhere ist vorkommender ..., wo es ist nicht in der Lage, die getIDnumber Funktion zu erkennen:Zugriff auf Klassenfunktion über Zeiger möglich
#include <iostream>
#include <stdlib.h>
#include <vector>
#include "windows.h"
#include <stdio.h>
//#include <math.h>
#include <string>
using namespace std;
class Person
{
public:
Person(int);
~Person();
vector<RECT>* processrectangles;
int Person::getIDnumber();
private:
int IDnumber;
};
Person::Person(int x)
{
IDnumber = x;
}
Person::~Person()
{
}
int Person::getIDnumber() {
return IDnumber;
}
void getthenumberhere(vector<Person>* thisone) {
int outID = *thisone[1].getIDnumber(); //IT CANT FIND THIS FUNCTION
}
int main() {
int NextID = 1;
vector<Person> People;
Person newguy(1);
People.push_back(newguy);
getthenumberhere(&People);
return 0;
}
Das Zählen beginnt mit '0' in der Programmierung, also sollten Sie' (* thisone) [0] .getIDnumber() ' – alain
verwenden Nur ein Kommentar: Wenn Sie C++ machen, fügen Sie' cstdlib' und 'cstdio' hinzu von 'stdlib.h' und' stdio.h' (und 'cmath' anstelle von' math.h', wenn Sie die Zeile auskommentieren) – wasthishelpful