指向对象的指针变量
定义的一般形式:
类名 *指针变量名;
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小时内删除。
发表评论