`
durq
  • 浏览: 5409 次
  • 性别: Icon_minigender_1
  • 来自: 唐山
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

利用this指针深入理解C++程序

阅读更多

利用this指针深入理解C++程序<o:p></o:p>

Use The “this” Pointer to Understand C++ Programs deeply<o:p></o:p>


摘要:this指针是一个特殊的指针,指向正在被某个成员函数操作的对象的指针;利用它,可以深入地理解C++程序中对象的构造和析构,了解对象在内存中的分配的释放的情况,深入地理解程序。

关键字:this 指针;内存;对象;构造;析构

AbstractThe “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()函数中可以查看它们的地址。

因为文章中有图片,不能全部显示,请查看附件中文章全文。
分享到:
评论

相关推荐

    VC++中this指针的用法[定义].pdf

    了解以上知识点后,我们能够更好地理解和利用this指针进行对象成员的访问和函数调用。在编写类和对象相关的代码时,理解this指针的工作原理有助于提高代码的效率和可读性。同时,对于虚拟函数的调用机制以及编译器...

    指针式简易时钟程序

    总结来说,创建一个基于C++ MFC的指针式简易时钟程序,需要理解C++指针的使用,掌握MFC框架,包括继承自定义窗口类、处理消息以及利用GDI进行图形绘制。通过结合这些技术,我们可以构建一个能够实时显示时间的美观...

    精选27个C++经典程序

    2. **this指针**:在C++中,`this`是一个隐含的指针,用于指向当前对象的地址,常用于成员函数中访问对象的成员变量。 3. **八皇后游戏**:这是一个经典的回溯法问题,用来解决如何在棋盘上放置8个皇后,使得任意两...

    inside.the.c++.object.model.pdf_inside_C++_

    2. **对象表示**:C++中的对象不仅包含数据成员,还包括隐含的this指针和可能的虚函数表。理解这些细节对于优化代码和调试至关重要。书中详细阐述了对象在内存中的布局,包括非静态成员变量和静态成员变量的存储位置...

    趣味C++小程序.rar

    在本压缩包“趣味C++小程序.rar”中,包含了多个C++编程的实践项目,旨在帮助初学者深入了解和掌握C++语言。以下是这些小程序所涉及的主要知识点和详细解释: 1. **八皇后问题**:这是一个经典的回溯算法应用,通过...

    C++程序设计谭浩强100%完整·清华大学.pdf

    综上所述,《C++程序设计》一书不仅覆盖了C++语言的基础知识,还深入探讨了面向过程和面向对象的编程思想,适合初学者系统学习C++,也适合作为有经验的程序员的参考书籍,帮助他们深入理解C++的高级特性。

    好学的C++程序设计

    《好学的C++程序设计》是一本深入浅出的编程教材,专注于教授C++语言的基础和高级概念。通过对各个章节源程序的学习,读者可以逐步掌握C++编程的核心技巧和思维方式。以下是对这些章节源程序所涵盖的知识点的详细...

    C++程序设计

    本章将进一步探讨类和对象的高级主题,如构造函数、析构函数、友元函数、静态成员以及this指针。这些概念对于理解对象的生命周期和类的内部运作至关重要。 #### 第10章:运算符重载 运算符重载是C++的一个特色,...

    C++面向对象程序设计[杜茂康等编著][电子教案].zip

    - this指针的理解与应用 3. **第4章:访问控制与封装** - 访问修饰符:public, private, protected - 数据封装:隐藏实现细节,保护数据安全 - friend函数:打破封装,实现特定情况下的访问 4. **第6章:...

    C++技能百练 C++技能百练

    《C++技能百练》是一本专注于C++编程技术的实战型教程,涵盖了广泛的C++编程知识点,旨在通过丰富的实例帮助读者深入理解和掌握这门语言。以下是对标题和描述中涉及的一些关键知识点的详细解释: 1. **this指针**:...

    【C语言】两个指针的坑

    这要求他们不仅要精通语言的语法,还需要深入理解内存管理、指针操作、类的构造和析构机制,以及容器的使用细节。只有全面掌握这些知识,才能在遇到问题时快速定位并解决,这也是为什么精通C或C++被视为站在程序设计...

    reverse c++

    因此,理解和掌握逆向C++程序的技术变得至关重要。 **为何逆向C++程序变得如此重要:** 1. **恶意软件的增长:** 恶意软件开发者越来越多地采用C++语言来编写他们的恶意代码。这种趋势增加了静态分析的难度,特别...

    逆向C++(中文版).pdf

    随着C++语言在软件开发中的广泛应用,特别是恶意软件和现代应用程序领域的增长,深入理解和掌握逆向C++程序的技术变得越来越重要。传统上,逆向工程师依赖于汇编语言和C语言的基础知识来分析软件,但如今,随着C++的...

    C++基础教程完整版

    ### C++基础教程知识点概述 #### 一、简介 **C++** 是一种广泛使用的通用编程语言...通过以上内容的学习,读者不仅可以掌握 C++ 的基础知识,还能深入了解面向对象编程和高级特性,从而更好地利用 C++ 进行软件开发。

    5.逆向C++(中文版).pdf

    在深入探讨自动化工具之前,首先需要了解如何手动识别C++程序中的关键元素,包括类、成员函数和类之间的关系。 ##### A. 识别类及其构造函数 - **ECX寄存器的频繁使用**:在C++中,`this`指针通常存储在ECX寄存器...

    C++程序设计教程教学设计-类与对象教学设计.docx

    《C++程序设计教程》教学设计的焦点在于教授面向对象编程的核心概念——类与对象。面向对象编程(Object-Oriented Programming, OOP)是一种基于现实世界模型的编程范式,它强调通过类来描述对象的属性和行为,进而...

    C++高级程序设计实验报告-实验四类的应用

    通过本实验,我们深入了解了C++中类和对象的相关概念,并通过实际编程练习加深了对构造函数、析构函数、对象指针等高级特性的理解。同时,通过对分数类`Rational`的设计与实现,掌握了如何利用类来解决实际问题。这...

Global site tag (gtag.js) - Google Analytics