关键词搜索

源码搜索 ×
×

C++中的overload,隐藏、override有什么区别?

发布2013-05-26浏览9108次

详情内容

        1. overload:

 

  1. #include <iostream>
  2. using namespace std;
  3. void print(int x)
  4. {
  5. cout << "int C++" << endl;
  6. }
  7. void print(char c)
  8. {
  9. cout << "char C++" << endl;
  10. }
  11. int main()
  12. {
  13. int n = 1;
  14. char ch = 'a';
  15. print(n);
  16. print(ch);
  17. return 0;
  18. }

      结果为:

 

int C++
char C++

      2. 隐藏:

 

  1. #include <iostream>
  2. using namespace std;
  3. class A
  4. {
  5. public:
  6. void print(int x)
  7. {
  8. cout << "int C++" << endl;
  9. }
  10. };
  11. class B : public A
  12. {
  13. public:
  14. void print(int x)
  15. {
  16. cout << "char C++" << endl;
  17. }
  18. };
  19. int main()
  20. {
  21. int n = 1;
  22. char ch = 'A';
  23. A a;
  24. a.print(n);
  25. B b;
  26. b.print(ch);
  27. return 0;
  28. }

 

     结果为:

int C++
char C++
      下面再看一个隐藏的例子(千万要注意,下面这个程序并不是override):

 

  1. #include <iostream>
  2. using namespace std;
  3. class A
  4. {
  5. public:
  6. virtual void print(int x)
  7. {
  8. cout << "int C++" << endl;
  9. }
  10. };
  11. class B : public A
  12. {
  13. public:
  14. virtual void print(char x)
  15. {
  16. cout << "char C++" << endl;
  17. }
  18. };
  19. int main()
  20. {
  21. int n = 1;
  22. char ch = 'A';
  23. A a, *p;
  24. p = &a;
  25. p->print(n);
  26. B b;
  27. p = &b;
  28. p->print(ch);
  29. return 0;
  30. }

      结果为:

 

int C++
int C++

      3. override

 

  1. #include <iostream>
  2. using namespace std;
  3. class A
  4. {
  5. public:
  6. virtual void print(int x)
  7. {
  8. cout << "int C++" << endl;
  9. }
  10. };
  11. class B : public A
  12. {
  13. public:
  14. virtual void print(int x)
  15. {
  16. cout << "char C++" << endl;
  17. }
  18. };
  19. int main()
  20. {
  21. int n = 1;
  22. char ch = 'A';
  23. A a, *p;
  24. p = &a;
  25. p->print(n);
  26. B b;
  27. p = &b;
  28. p->print(ch);
  29. return 0;
  30. }

      结果为:

 

int C++
char C++
 

相关技术文章

点击QQ咨询
开通会员
返回顶部
×
微信扫码支付
微信扫码支付
确定支付下载
请使用微信描二维码支付
×

提示信息

×

选择支付方式

  • 微信支付
  • 支付宝付款
确定支付下载