指向对象的指针变量
定义的一般形式:
类名 *指针变量名;
p->  (*p).
指向对象的成员变量的指针变量:
1.该指针变量可出现在成员函数中,通过获取该成员变量的地址,然后通过(*指针变量名)访问该成员变量
class aa
{
    int a;
public:
    aa()
    {
        a=0;
    }
    aa(int a)
    {
        this->a=a;
    }
    void get_a()
    {
        int *p;
        p=&a;
        cout<<*p<<endl;
    }
};
2.不在类中定义一个指针变量访问类体中的成员变量,该成员变量只能定义成public
class aa
{   
public:
    int a;
    aa()
    {
        a=0;
    }
    aa(int a)
    {
        this->a=a;
    }
    void get_a()
    {
        int *p;
        p=&a;
        cout<<*p<<endl;
指针调用成员函数
    }
};
int main()
{
    aa b(3);
    b.get_a();
    aa *p;
    p=new aa[2];
    (p+1)->get_a();
    p[1].get_a();
    int *q;
    q=&b.a;
    return 0;
}
指向成员函数的指针变量:
定义的一般形式:
函数类型名 (类名::*指针变量名)(参数);
赋值的一般形式:
指针变量名=对象名.成员函数名
指针变量名=&类名.成员函数名或指针变量名=类名.成员函数名
通过指针变量引用对象的成员函数
一般形式:(对象名.*指针变量名)(参数)
this指针
#include <iostream>
using namespace std;
class aa
{
    int a;
public:
    aa()
    {
        a=0;
    }
    aa(int a)
    {
        this->a=a;
    }
    void get_a()
    {
        cout<<this->a<<endl;
        cout<<this<<endl;
    }
};
int main()
{
    aa b(3);
    aa c(5);
   
    cout<<&b<<endl;
    b.get_a();
    return 0;
}
例题:
#include <iostream>
using namespace std;
class point
{
    int x,y;
public:
    point(int x=0,int y=0);
    int get_x();
    int get_y();
    void print();
    void set_x(int x);
    void set_y(int y);
};
point::point(int x,int y)
{
    this->x=x;
    this->y=y;
}
int point::get_x()
{
    return x;
}
int point::get_y()
{
    return y;
}
void point::print()
{
    cout<<"x坐标为:"<<get_x()<<endl;
    cout<<"y坐标为:"<<y<<endl;
}
void point::set_x(int x)
{
    this->x=x;
}
void point::set_y(int y)
{
    this->y=y;
}
int main()
{
    point p1(12,12);
    p1.print();
    cout<<"修改后的坐标为:"<<endl;
    p1.set_x(15);
    p1.set_y(25);
    p1.print();
    return 0;
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。