对象指针
概念:每一个对象在初始化后都会在内存中占有一定的空间。因此,既可以通过对象名访问,
也可以通过一个对象地址来访问一个对象。对象指针就是用于存放对象地址的变量。

声明对象指针的一般语法格式为:类名*对象指针名

指针访问模式:1、用指针访问单个对象成员
                            2、用对象指针访问对象数组

//@用指针访问单个对象成员:一般情况下,用点运算符"."来访问对象成员,当用指向对象
//的指针来访问对象成员时,就要用"->"操作符。

//例3.17 对象指针的使用
#include<iostream>
using namespace std;
class exe{
public:
void set_a(int a) //定义成员函数set_a,给数据成员赋值
{
x = a;
}
void show_a() //定义成员函数show_a,输出数据成员的值
{
cout<<x<<endl;
}
private:
int x;
};
int main()
{
exe ob; //定义类exe的对象ob
exe *p; //定义类exe的对象指针变量p
ob.set_a(); //调用成员函数set_a,给数据成员赋值
ob.show_a(); //调用成员函数show_a,显示数据成员的值
p = &ob; //将对象ob的地址赋给指针变量p
(*p).show_a(); //调用p所指向的对象的成员函数show_a,也即ob.show_a()
p->show_a(); //调用p所指向的对象的成员函数show_a,也即ob.show_a()
return ;
}
//以上情况下:ob.show_a() = (*p).show_a() = p->show_a() ,运行结果相同 //@用对象指针访问对象数组: exe *p; //定义指向类exe的对象指针变量p
exe ob[]; // 定义类exe的对象数组ob[2]
若只有数组名,没有下标,这时该数组名代表第一个元素的地址,所以执行语句:
p = ob; //就是把数组中的第一个元素的地址(即数组的地址)赋给对象指针变量p 将3.17的主函数改成为:
int main()
{
exe ob[];
exe *p;
ob[].set_a();
ob[].set_a();
p = ob;
p->show_a();
p++;
return ;
} 程序运行结果: 10
20

C++:对象指针的更多相关文章

  1. delete 类对象指针的注意事项]

    http://blog.csdn.net/infoworld/article/details/45560219 场景:1. C++类有构造和析构函数,析构函数是在类对象被delete时(或局部变量自动 ...

  2. C++:向函数传递对象(对象、对象指针、对象引用)

    3.5.1   使用对象作为函数参数,其方法与传递基本类型的变量相同 //例3.21 使用对象作为函数参数 #include<iostream> using namespace std; ...

  3. 对象指针与this指针

    对象指针分为三大类 [1]指向对象的指针 [2]指向对象成员的指针(数据类) [3]指向对象成员的指针(函数类) #include<iostream> using namespace st ...

  4. MFC通过对话框窗口句柄获得对话框对象指针

       C***Dialog* pWnd= (C***Dialog*)FromHandle(hWnd); //由句柄得到对话框的对象指针    pWnd->xxx( );              ...

  5. c++ 对象指针参数和对象引用参数02

    对象指针作为函数参数和对象引用作为函数参数都比对象作为函数参数要用的更为普遍 传对象指针和传对象引用作为实参,那么实参在函数里发生了变话,那么相应的对象本身也会发生变化,二传递对象本身作为实参的话,实 ...

  6. c++对象指针-01(转载)

    1.指向对像的指针在建立对像时,编译系统会为每一个对像分配一定的存储空间,以存放其成员,对像空间的起始地址就是对像的指针.可以定义一个指针变量,用来存和对像的指针.如果有一个类:class Time{ ...

  7. 值为NULL的对象指针

    相信大家对NULL不会很陌生,NULL 是一个标准规定的宏定义,用来表示空指针常量,当一个指针变量被赋值为NULL时,表示它不再指向任何有效地址,无法在访问任何数据.在VS2012库文件stdio.h ...

  8. C++二维数组、指针、对象数组、对象指针

    项目中用到,随手记一下: 1.二维数组.与指针 创建二维数组指针的方式: a.已知一维的大小 1 int **array=new int *[rows]; 2 (for int i=0;i<ro ...

  9. C# CLR via 对象内存中堆的存储【类型对象指针、同步块索引】

    最近在看书,看到了对象在内存中的存储方式. 讲到了对象存储在内存堆中,分配的空间除了类型对象的成员所需的内存量,还有额外的成员(类型对象指针. 同步块索引 ),看到这个我就有点不懂了,不知道类型对象指 ...

随机推荐

  1. Wpf从资源中重用UI元素

    在我的界面上有几个选项卡,每个选项卡中都有下面的元素: <StackPanel Orientation="Horizontal"> <Button Content ...

  2. 【WPF学习日记——[DevExpress]】GridControl 行中使用按钮

    想到的办法都试了,只有这个能用,不一定是最好的,但却是自己能想到的,记录一下. <dxg:GridColumn Header="操作" Width="134&quo ...

  3. hdu 5738 2016 Multi-University Training Contest 2 Eureka 计数问题(组合数学+STL)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5738 题意:从n(n <= 1000)个点(有重点)中选出m(m > 1)个点(选出的点只 ...

  4. linux c 验证登录密码

    #define _XOPEN_SOURCE #include <stdio.h> #include <unistd.h> int main(int argc, char *ar ...

  5. CPU原理

    cpu map 1.CPU的整体架构: 2.从CPU向内存 3.CPU和内存的关系图 4.CPU指令集 5.A+B 6.结果输入寄存器 7.寄存器中的临时存储,用来暂存B 8.将B传入寄存器 9.A会 ...

  6. 【Ajax】脑补一下 ajax 的options

    问题是因为粉红色部分引起的 ,想搞明白 put delete 的应用场景,发现ajax的一些属性也没有完全用过. 参数名 类型 描述 url String (默认: 当前页地址) 发送请求的地址. t ...

  7. 什么是ajax,ajax原理是什么 ,优缺点是什么

    AJAX工作原理及其优缺点   1.什么是AJAX?AJAX全称为“Asynchronous JavaScript and XML”(异步JavaScript和XML),是一种创建交互式网页应用的网页 ...

  8. 什么是XAML?

    XAML类似于XML一样的一种标记语言,主要用来设计UI. 对于XAML的历史,哪些都是废话了,至于Microsoft怎么整出XAML,然后,又怎么让XAML来开发windows 8应用程序,这些,都 ...

  9. Daily Scrum 11.6

    摘要:在本次meeting时,所有代码的修改工作已经接近尾声,接下来是进行的就是单元测试以及进行alpha版本的改进.本次的Task列表如下: Task列表 出席人员 Today's Task Tom ...

  10. DB天气app冲刺二阶段第九天

    今天是第九天了 不管怎么样也要收尾了赶紧,毕竟不可能做到尽善尽美了,时间不够了所以要把该砍掉的砍点,然后应对下周的大二同学的面试.尽量做好界面的美化工作这是最基本的了.毕竟我一直崇尚的就是UI设计了. ...