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++