Code: Alles auswählen
#include <iostream>
using namespace std;
#include "heterachie.h"
class base
{
protected:
	int a;
public:
	base(){a=1;}
	void printA(){cout << a << endl;};
	virtual void print(){cout << a << endl;}
};
class foo : public base
{
protected:
	int b;
public:
	foo(){b = 2;}
	void printB(){cout << b << endl;}
	void print(){cout << b << endl;}
	void add(){cout << a + b << endl;}
};
class bar : public base
{
private:
	int c;
public:
	bar(){c = 3;}
	void printC(){cout << c << endl;}
	void print(){cout << c << endl;}
	void add(){cout << c << endl;}
};
class FooBar : public foo, public bar
{
private:
	int d;
public:
	FooBar(){d=4;};
	void print(){cout << d << endl;};
};
void TestFunc()
{
	FooBar myFoo();
	foo fo();
	bar ba();
	myFoo.print(); //Fehler: Links von ".print" muss sich eine Klasse/Struktur/Union befinden.
	fo.print(); // Ebenfalls
	ba.print(); //Selber fehler
}Aber ich kann mir das nicht erklären?
Die Objektinitialisierung nimmt er an und damit müsste doch myFoo.print() das gewünschte Ergebnis bringen?



