导航:首页 - 如何学习C++与面向对象:重载

如何学习C++与面向对象:重载
作者:深圳教育在线 来源:www.szedu.net 更新日期:2010-2-1

  等我们长的点了,我们就能表达自己的意思了。这时,可以给Speak增加一个参数:

  void speak(char a[])

  {

  cout 《 "我在说:" 《 a 《 endl;

  }

  这个函数与原来的speak重名,但c++很聪明,知道在什么情况下调用哪个,所以我们可以把他加进类里:

  class person

  {

  private:

  char birthday[20];

  char sex[10];

  char name[20];

  public:

  person(char b[], char s[])

  {

  birthday = b;

  sex = s;

  }

  void set_name(char n[])

  {

  strcpy(name,n);//strcpy,没忘吧?复制char类型要用这个,不要写成"name = n;"!

  }

  char *get_name()

  {

  return *name;

  }

  void speak()

  {

  cout 《 "我在牙牙学语!" 《 endl;

  }

  void speak(char a[])

  {

  cout 《 "我在说:" 《 a 《 endl;

  }

  }

  然后调用它:

  Int main()

  {

  person xiaoming("1985/1/1","male");

  xiaoming.set_name("xiaoming");

  xiaoming.speak();

  xiaoming.speak("我饿了,我要喝奶");

  }

  两次调用,我们给了不同的参数,结果当然也是不同的。因为重载是靠参数的个数和类型来区别的,只要参数的个数和类型不同,c++就能分辨,知道调用哪一个。

  构造函数也是函数,所以…

  class person

  {

  private:

  char birthday[20];

  char sex[10];

  char name[20];

  public:

  person()

  { }

  person(char b[], char s[])

  {

  birthday = b;

  sex = s;

  }

  void set_name(char n[])

  {

  strcpy(name,n);//strcpy,没忘吧?复制char类型要用这个,不要写成"name = n;"!

  }

  char *get_name()

  {

  return *name;

  }

  void speak()

  {

  cout 《 "我在牙牙学语!" 《 endl;

  }

  void speak(char a[])

  {

  cout 《 "我在说:" 《 a 《 endl;

  }

  };

  注意到了吗,我加了这个函数:

  person()

  { }

  空的什么都没有,有什么用?

  ……

  有时我们这样实例化对象:person xiaoming();

  这是调用的就是这个构造函数!当然这么简单的事编译器可以替我们做,但我们还是不妨写上。

[本文共有 2 页,当前是第 2 页] <<上一页 下一页>>


报 名 此 课 程 / 咨 询 相 关 信 息
【预约登门】 【网上咨询】 【订座试听】 【现在报名】
课程名称
如何学习C++与面向对象:重载
真实姓名
* 性 别
联系电话
* E-mail:
所在地区
咨询内容

      

相关文章:

Copyright© 2004-2017 www.szedu.net 深圳教育在线 版权所有
中国·深圳
粤ICP备06023013号