C++中派生類重寫基類過載函式
阿新 • • 發佈:2019-02-11
#include<iostream>
using
namespace
std;
class
Base
{
public:
virtual
void
print() { //如果不加virtual,輸出的全是基類
cout <<
"print() in Base."
<< endl;
}
void
print(int
a) {
cout <<
"print(int a) in Base."
<< endl;
}
void
print(string
s) {
cout <<
"print(string s) in Base."
<< endl;
}
};
class
Derived
:
public
Base
{
public:
void
print() {
cout <<
"print() in Derived."
<< endl;
}
};
int
main() {
Base
b;
Derived
d;
Base*
bp = &d;
b.print();
//呼叫的是基類的print()
b.print(8);
b.print("a");
bp->print();
//呼叫的是派生類的print()
bp->print(10);
bp->print("");
d.print();
//呼叫的是派生類的print()
system("pause");
return
0;
}