飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 2374|回复: 2

编程马拉松(15)重载

[复制链接]

该用户从未签到

发表于 2007-9-2 08:54:57 | 显示全部楼层 |阅读模式

  1. #include <iOStream>//主要说明一下函数重载及拷贝函数
  2. using namespace std;

  3. class test
  4. {
  5. protected:
  6.         char name[20];
  7.         char address[30];
  8.         float zf;
  9. public:
  10. //        test(){}//这是一个无参数的构造函数
  11.         test(char *name,char *address) //第一个构造函数用来输入:姓名,地址
  12.         { //函数重载只有在参数不同或类型不同的情况下
  13.                 strcpy(test::address,address);
  14.                 strcpy(test::name,name);
  15.         }
  16. //下面这个函数可以改一下。改为:
  17. /*         float test0(float shuxue,float yuwen,float yingyu)//来输入:数学,语文,英语并算总分。
  18.         {
  19.                 zf=0;
  20.                 zf=shuxue+yuwen+yingyu;
  21.                 return zf;
  22.         }
  23. 这样可把main函数里写成
  24. test a;
  25. float x;
  26. x=a.test0(shuxue0,yuwen0,yingyu0);
  27. cout<<a<<endl;
  28. //a.test0=12345;这样写是错的。
  29. */

  30.          test(float shuxue,float yuwen,float yingyu)//来输入:数学,语文,英语并算总分。
  31.         {
  32.                 zf=0;
  33.                 zf=shuxue+yuwen+yingyu;
  34.         //        return zf;
  35.         }
  36. /*        test(test &temp0) //拷贝函数,系统自动提供,也可以不写。
  37.         {
  38.                 strcpy(test::address,temp0.address);
  39.                 strcpy(test::name,temp0.name);
  40.         } */
  41.         ~test() //这里是空析构,有没有都一样
  42.         {
  43.                         
  44.         }
  45.         void show()
  46.         {
  47.         cout<<"名称:"<<name
  48.                 <<"地址:"<<address
  49.                 <<"总分:"<<zf<<endl;
  50.         }
  51. };



  52. void main()
  53. {
  54.         cout<<"请输入学生资料:"<<endl;
  55.         //cin>>getin.name>>getin.address;这样写是不对的,因为这两个变量是保护的。
  56.         char name0[20]="noinput",address0[30]="noinput";
  57.         float shuxue0=0,yuwen0=0,yingyu0=0;
  58.         cout<<"姓名:";cin>>name0;
  59.         cout<<"地址:";cin>>address0;
  60.         cout<<"数学:";cin>>shuxue0;
  61.         cout<<"语文:";cin>>yuwen0;
  62.         cout<<"英语:";cin>>yingyu0;

  63.         test getin0(name0,address0);
  64.         test getin1(shuxue0,yuwen0,yingyu0);
  65.         getin0.show(); //大家可以看看这两个show的区别。
  66.         getin1.show();
  67. }
复制代码
PYG19周年生日快乐!

该用户从未签到

发表于 2007-12-2 20:09:05 | 显示全部楼层
楼主要是能用通俗的语言讲解一下函数重载的解析过程对大家帮助更大
PYG19周年生日快乐!

该用户从未签到

发表于 2007-12-4 22:24:41 | 显示全部楼层
光有代码,应该再加点说明就好了。
PYG19周年生日快乐!
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

快速回复 返回顶部 返回列表