Hallo,
ich habe eine Frage zur friendfunktion. Ich habe zum testen, folgenden Code geschrieben:
_____________"car.h"__________________
C
#ifndef CAR_H_
#define CAR_H_
#include <iostream>
using namespace std;
class car {
public:
friend car* create();
void print();
private:
car();
};
car::car(){
}
void car::print(){
cout<<"I'm a car"<<endl;
}
#endif /* CAR_H_ */
Alles anzeigen
_____________"haendler.h"______________
C
#ifndef HAENDLER_H_
#define HAENDLER_H_
#include <iostream>
#include "car.h"
class haendler {
public:
car* create();
private:
};
car* haendler::create(){
car* temp = new car();
return temp;
}
#endif /* HAENDLER_H_ */
Alles anzeigen
wenn ich jetzt versuche mit der Methode create() ein "car" zu erstellen, dann meckert der Compiler, dass der Konstruktor von car private ist. Aber jetzt müsste doch haendler Zugang zu allen privaten Methoden haben?
Wieso funktioniert das nicht?
Vielen Dank