设为首页 加入收藏

TOP

C++_对象数组与对象指针(二)
2019-03-15 12:08:01 】 浏览:156
Tags:对象 指针
blic: example(int n, int m) { x=n; y=m; } int get_x() { return x;} int get_y() { return y;} private: int x,y; }; main() { example op[4]={ example(1,2), example(3,4), example(5,6), example(7,8) }; int i; example *p; p=&op[3]; // 取出最后一个数组元素的地址 for (i=0;i<4;i++) { cout<<p->get_x()<<‘ ‘; cout<<p->get_y()<<"\n"; p--; // 指向前一个数组元素 } cout<<"\n"; return 0; }
7 8
5 6
3 4
1 2

指向类的成员的指针

类的成员自身也是一些变量、函数或者对象等。因此,也可以直接将它们的地址存放到一个指针变量中,这样就可以使指针直接指向对象的成员,进而可以通过指针访问对象的成员。

可在类外定义指向类的成员的指针来控制对象的成员。

注意:

  • 指向成员的指针只能访问公有数据成员和成员函数。
  • 使用要先声明,再赋值,然后访问。

(1)指向数据成员的指针

  • 声明: 类型说明符 类名:: *数据成员指针名
  • 赋值: 数据成员指针名=&类名:: 数据成员名
  • 使用
    • 对象名. *数据成员指针名
    • 对象指针名->*数据成员指针名
【例3.9】 访问对象的公有数据成员的几种方式
#include<iostream.h>
class A{
public:
    A(int i) { z=i; }
int z;
};
void main()
{
    A ob(5);
    A *pc1; // 声明一个对象指针pc1
    pc1=&ob; // 给对象指针pc1赋值
    int A∷*pc2; // 声明一个数据成员指针pc2 // ①
    pc2=&A∷z; // 给数据成员指针pc2赋值 // ②
    cout<<ob.*pc2<<endl; // 用成员指针pc2访问数据成员z
    cout<<pc1->*pc2<<endl; // 用成员指针pc2访问数据成员z
    cout<<ob.z<<endl; // 使用对象名访问数据成员z
}

(2)指向成员函数的指针

  • 声明: 类型说明符 (类名∷ *指针名)(参数表);
  • 赋值: 成员函数指针名 = 类名∷成员函数名;
  • 使用
    • (对象名.*成员函数指针名)(参数表);
    • (对象指针名 -> *成员函数指针名) (参数表);
【例3.10】 访问对象的公有成员函数的几种方式
#include<iostream.h>
class Coord {
public:
    Coord(int a=0,int b=0) { x=a; y=b; }
    int getx() { return x; }
    int gety() { return y; }
private:
    int x,y;
};
void main()
{
    Coord op(5,6);
    Coord *pc1=&op;
    int (Coord∷*pc_getx)();
    pc_getx=Coord∷getx;
    cout<<pc1->getx()<<endl;
    cout<<op.getx()<<endl;
    cout<<(op.*pc_getx)()<<endl;
    cout<<(pc1->*pc_getx)()<<endl;
}
首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇C++学习(二十一)(C语言部分).. 下一篇c\c++ 网络编程 read,write函数..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目