C++之this指针与另一种“多态”

来源:计算机等级考试    发布时间:2012-08-29    计算机等级考试视频    评论

  一、 引入

  定义一个类的对象,首先系统已经给这个对象分配了空间,然后会调用构造函数。一个类有多个对象,当程序中调用对象的某个函数时,有可能要访问到这个对象的成员变量。而对于同一个类的每一个对象,都是共享同一份类函数。对象有单独的变量,但是没有单独的函数,所以当调用函数时,系统必须让函数知道这是哪个对象的操作,从而确定成员变量是哪个对象的。这种用于对成员变量归属对像进行区分的东西,就叫做this指针。事实上它就是对象的地址,这一点从反汇编出来的代码可以看到。

  二、分析

  1、测试代码:

  view sourceprint?///////////////////////////////////////////////////

  #include

  using   namespace   std;

  /////////////////////////////////////////////////////

  class A

  {

  public:

  A(char *szname)

  {

  cout<<"construct"<

  name = new char[20];

  strcpy(name, szname);

  }

  ~A()

  {

  cout<<"destruct"<

  delete name;

  }

  void    show();

  private:

  char    *name;

  };

  /////////////////////////////////////////////////////

  void    A::show()

  {

  cout<<"name = "<

  }

  /////////////////////////////////////////////////////

  int main()

  {

  A a("zhangsan");

  a.show();

  system("pause");

  return 0;

  }

上一页12下一页

视频学习

我考网版权与免责声明

① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;

② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。

最近更新

社区交流

考试问答