- 定义指针:类名 *指针变量 例如:Myclass *p;
- 使指针有指向 :指针变量=&对象名
- 通过指针变量完成对指向对象的成员操作
my.x==p->x
指针变量->数据成员
指针变量->方法名(实参)
通过指针变量表示对象:*指针变量
#include<iostream>
using namespace std;
class Myclass{
private:
int x,y;
public:
Myclass(){
x=0;
y=0;
}
Myclass(int x,int y)
{
this->x=x;
this->y=y;
}
void Print()
{
cout<<x<<endl;
cout<<y<<endl;
}
};
int main()
{
Myclass my(3,5);
Myclass *Pmy;
Pmy=&my;
my.Print();//①
(*Pmy).Print();//②
//Pmy->Print(); //③
}
注意:i:定义指针对象的指针变量时,指针变量不调用构造函数
ii:必须使指针变量指向对象,才可使用指针变量完成操作
//动态对象:在内存中动态的分配一个对象单元
//格式:new 类名()
// new 类名(实参)
//返回值:分配成功返回对象地址,失败返回NULL
//用new动态分配对象时,一定会调用构造函数
//所有用new分配的动态对象单元必须用delete释放
//动态对象的释放:delete 指针变量;
#include<iostream>
using namespace std;
class Myclass{
private:
int x,y;
public:
Myclass(){
x=0;
y=0;
}
Myclass(int x,int y){
this->x=x;
this->y=y;
}
void Print()
{
cout<<x<<endl;
cout<<y<<endl;
}
};
int main()
{
Myclass *Pmy;
Pmy=new Myclass(3,5);
Pmy->Print();
delete Pmy;//释放Pmy所指的对象单元,Pmy不释放
return 0;
}