利用this指针深入理解C++程序<o:p></o:p>
Use The “this” Pointer to Understand C++ Programs deeply<o:p></o:p>
摘要:this指针是一个特殊的指针,指向正在被某个成员函数操作的对象的指针;利用它,可以深入地理解C++程序中对象的构造和析构,了解对象在内存中的分配的释放的情况,深入地理解程序。
关键字:this 指针;内存;对象;构造;析构
Abstract:The “this” pointer is a special pointer, which point address of an object whose member function is being run; using the “this” pointer, we may understand the process of one object’s construction and destruction in C++ programs, and know about that how to assign memory for one object and free the memory, and understand the programs deeply.
Key words: “this” pointer; memory; object; construct; destruct
<o:p> </o:p>
引言
对于计算机专业的学生来说,不仅需要熟练掌握C++的语法结构和它们的灵活应用,还需要了解C++程序运行时内存的分配情况。内存是一种紧缺资源,只有深入了解程序运行时的内存分配情况,才能够灵活运用所学的知识,充分利用内存。C++中提供了一种非常有用的指针:this指针,利用它可以帮助我们深入地理解C++程序运行时的内存分配情况。
1. 对象
C++,在程序员圈子中通常被读做“C加加”,而西方的程序员通常读做“C plus plus”,它是一种使用非常广泛的计算机编程语言。它支持过程程序设计和面向对象程序设计等多种程序设计风格。在面向对象程序设计中,类与对象是两个非常重要而又密切相关的概念。类是对象的抽象,而对象是类的实例。在学习面向对象的程序设计过程中,学生接触最多的是类和对象。
对于对象,如何在内存中给它们分配空间呢?请看下面的例子,程序名“point.cpp”
#include <iostream.h></iostream.h>
class Point
{
public:
Point(int xx=0,int yy=0)
{ x=xx; y=yy; }
int x,y;
};
void main()
{
Point p1,p2(2,2);
Point p3(3,3);
cout<<"&p1="<<&p1<<" &(p1.x)="<<&(p1.x)<<", &(p1.y)="<<&(p1.y)<
cout<<"&p2="<<&p2<
cout<<"&p3="<<&p3<
}
为了了解对象及对象的成员变量在内存中的分配情况,在Point类定义中全部成员都在公有部分,为的是在main()函数中可以查看它们的地址。
因为文章中有图片,不能全部显示,请查看附件中文章全文。