指向对象的指针

  1. 定义指针:类名 *指针变量 例如:Myclass *p;
  2. 使指针有指向 :指针变量=&对象名
  3. 通过指针变量完成对指向对象的成员操作
    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;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值