class PBaseClass
{
public:
PBaseClass() {
printf("PBaseClass\n");
}
virtual void print() const {
printf("PBaseClass print()\n");
}
void print(char* a) const {
printf("PBaseClass print(double)\n");
}
{
public:
using PBaseClass::print; // 子类的print 会覆盖基类的函数命名。
void print(int x) {
printf("PDeriveClass print()\n");
}
{
public:
PBaseClass() {
printf("PBaseClass\n");
}
virtual void print() const {
printf("PBaseClass print()\n");
}
void print(char* a) const {
printf("PBaseClass print(double)\n");
}
};
{
public:
using PBaseClass::print; // 子类的print 会覆盖基类的函数命名。
void print(int x) {
printf("PDeriveClass print()\n");
}
};
调用过程:
PDeriveClass* a = new PDeriveClass;
a->print(1);
a->print();
a->print("");