对象的简单使用

本文详细介绍了C++中对象及其指针的使用方法,包括对象指针、对象引用及This指针的概念与应用场景,并通过实例展示了如何利用对象指针进行函数参数传递和对象属性更新。

对象的使用

对象指针:

当定义对象指针后,可以利用对象指针访问其指向的对象的公有成员,语法形式:

对象指针->公有成员;

对象引用

Student stu(1,”wang”,’M’);

Student rstu=stu;

This指针

它是一种特殊的指针,它指向员函数当前操作的数据所属对象。

对象数组:

 

普通对象做函数参数:

与普通变量做函数参数一样。

例子:

#include<iostream>
#include<cstring>
using namespace std;
class Student{
	public:
		Student(int pId,char* pName,char pSex);
		int getId(){
			return id;
		}
		char* getName(){
			return name;
		}
		char getSex(){
			return sex;
		}
		private:
	//	public:
			int id;
			char* name;
			char sex;
};
Student::Student(int pId,char* pName,char pSex)
{
	id=pId;
	name=new char[strlen(pName)+1];
	if(name!=0)
	strcpy(name,pName);
	sex=pSex;
}
class Admin{
	public:
		Admin(int pId);
		void printStudent(Student stu);
		private:
			int id;
};
Admin::Admin(int pId)
{
	id=pId;
}
void Admin::printStudent(Student stu)
{
	cout<<"The student information is: "<<"id: "<<stu.getId()<<","<<"name: "<<stu.getName()<<","<<"sex: "<<stu.getSex()<<endl;
	//	cout<<"The student information is: "<<"id: "<<stu.id<<","<<"name: "<<stu.name<<","<<"sex: "<<stu.sex<<endl;

}
int main()
{
	Student stu(1,"wang",'M');
	Admin admin(11);//为什么? 
	admin.printStudent(stu);
	return 0;
}


对象指针做函数参数:

与普通变量指针做函数参数的用法一样。

#include<iostream>
#include<cstring>
using namespace std;
class Student{
	public:
		Student(int pId,char* pName,char pSex);
			int getId(){
			return id;
		}
		char* getName(){
			return name;
		}
		char getSex(){
			return sex;
		}
		void setId(int pId)
		{
			id=pId;
		}
		void setName(char* pName)
		{
			name=new char[strlen(pName)+1];
			if(name!=0)
			strcpy(name,pName);
		}
		void setSex(char pSex){sex=pSex;}
		private:
	//	public:
			int id;
			char* name;
			char sex;
};
Student::Student(int pId,char* pName,char pSex)
{
	id=pId;
	name=new char[strlen(pName)+1];
	if(name!=0)
	strcpy(name,pName);
	sex=pSex;
}
class Admin{
	public:
		Admin(int pId);
		void printStudent(Student stu);
		void updateStudent(Student* pStu,int pId);
		void updateStudent(Student* pStu,char* pName);
		void updateStudent(Student* pStu,char pSex);
		private:
			int id;
};
Admin::Admin(int pId)
{
	id=pId;
}
void Admin::printStudent(Student stu)
{
		cout<<"The student information is: "<<"id: "<<stu.getId()<<","<<"name: "<<stu.getName()<<","<<"sex: "<<stu.getSex()<<endl;
}
void Admin::updateStudent(Student* pStu,int pId)
{
	pStu->setId(pId);
}
void Admin::updateStudent(Student* pStu,char* pName)
{
	pStu->setName(pName);
}
void Admin::updateStudent(Student* pStu,char pSex)
{
	pStu->setSex(pSex);
}
int main()
{
	Student stu(1,"wang",'M');
	Admin admin(91);
	admin.printStudent(stu);
	Student* pStu=&stu;
	admin.updateStudent(pStu,99);
	admin.printStudent(stu);
	admin.updateStudent(pStu,"zhao");
	admin.printStudent(stu);
	admin.updateStudent(pStu,'F');
	admin.printStudent(stu);
	return 0;
}


对象引用做函数参数

与普通变量做函数参数的用法一样。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值