1. overload:
#include <iostream>
using namespace std;
void print(int x)
{
cout << "int C++" << endl;
}
void print(char c)
{
cout << "char C++" << endl;
}
int main()
{
int n = 1;
char ch = 'a';
print(n);
print(ch);
return 0;
}
结果为:
int C++
char C++
2. 隐藏:
#include <iostream>
using namespace std;
class A
{
public:
void print(int x)
{
cout << "int C++" << endl;
}
};
class B : public A
{
public:
void print(int x)
{
cout << "char C++" << endl;
}
};
int main()
{
int n = 1;
char ch = 'A';
A a;
a.print(n);
B b;
b.print(ch);
return 0;
}
结果为:
int C++
char C++
下面再看一个隐藏的例子(千万要注意,下面这个程序并不是override):
#include <iostream>
using namespace std;
class A
{
public:
virtual void print(int x)
{
cout << "int C++" << endl;
}
};
class B : public A
{
public:
virtual void print(char x)
{
cout << "char C++" << endl;
}
};
int main()
{
int n = 1;
char ch = 'A';
A a, *p;
p = &a;
p->print(n);
B b;
p = &b;
p->print(ch);
return 0;
}
结果为:
int C++
int C++
3. override
#include <iostream>
using namespace std;
class A
{
public:
virtual void print(int x)
{
cout << "int C++" << endl;
}
};
class B : public A
{
public:
virtual void print(int x)
{
cout << "char C++" << endl;
}
};
int main()
{
int n = 1;
char ch = 'A';
A a, *p;
p = &a;
p->print(n);
B b;
p = &b;
p->print(ch);
return 0;
}
结果为:
int C++
char C++