Name: Anonymous 2012-01-14 0:50
#include<iostream>
using namespace std;
class A {
public:
A() {
}
virtual ~A() {
}
void waka() {
cout << "WakA!";
}
};
class IWoopaWaka {
public:
IWoopaWaka() {
}
virtual ~IWoopaWaka() {
}
virtual void waka() = 0;
virtual void woopa() = 0;
};
class B : public IWoopaWaka, public A {
public:
B() : A() {
}
virtual ~B() {
}
void woopa() {
cout << "Woooopa!";
}
};
int main(int argc, char** argv) {
IWoopaWaka* wapa = new B();
wapa->waka();
wapa->woopa();
delete wapa;
return 0;
}
$g++ m.cpp
m.cpp: In function ‘int main(int, char**)’:
m.cpp:49: error: cannot allocate an object of abstract type ‘B’
m.cpp:34: note: because the following virtual functions are pure within ‘B’:
m.cpp:30: note: virtual void IWoopaWaka::waka()
#include<iostream>
using namespace std;
class A {
public:
A() {
}
virtual ~A() {
}
void waka() {
cout << "WakA!";
}
};
class IWoopaWaka {
public:
IWoopaWaka() {
}
virtual ~IWoopaWaka() {
}
virtual void waka() = 0;
virtual void woopa() = 0;
};
class B : public IWoopaWaka, public A {
public:
B() : A() {
}
virtual ~B() {
}
void waka() {
A::waka();
}
void woopa() {
cout << "Woooopa!";
}
};
int main(int argc, char** argv) {
IWoopaWaka* wapa = new B();
wapa->waka();
wapa->woopa();
delete wapa;
return 0;
}
$g++ m.cpp
$a.out
WakA!Woooopa!$