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?