【c++】对象类

对象的内存空间:
对象的大小=所有成员变量的大小之和
eg:

class CRectangle{
	public:
		int w, h;
	void Init(int w_, int h_){
		w = w_; h = h_;
	}
	int Area(){
		return w * h;
	}
	int Perimeter(){
		return 2*(w + h);
	}
};//必须要有分号

CRectangle类的对象,sizeof(CRectangle) = 8(两个int)
每个对象各自有自己的存储空间
一个对象的某个成员变量被改变,不会影响到其他的对象

对象之间的运算
对象之间可以用’='进行赋值
不能用‘==’,‘!=’, ‘>’, ‘<’, ‘>=’, '<='进行比较,除非这些运算符经过了重载

访问类的成员变量和成员函数
用法1:对象名.成员名

CRectangle r1, r2;
r1.w = 5;
r2.Init(3, 4);
//r1 r2就是对象

用法2:指针->成员名

CRectangle r1, r2;
CRectangle *p1 = &r1;
CRectangle *p2 = &r2;
p1->w = 5;
p2->Init(3, 4);

用法3:引用名.成员名

类的成员函数的另一种写法
成员函数和类的定义分开写

class CRectangle{
	public:
		int w, h;
		int Area();//成员函数在此处声明
		int Perimeter();
		void Init(int w_, int h_);

};
//函数的定义放外面,加上CRectangle::
void CRectangle::Init(int w_, int h_){
	w = w_; h = h_;
}
int CRectangle::Area(){
	return w * h;
}
int CRectangle::Perimeter(){
	return 2*(w + h);
}

类成员的可访问范围
private:指定私有成员,只能在成员函数内被访问
public:指定公有成员,可以在任何地方被访问
protected:制定保护成员

class className{
	private:
		私有属性和函数
	public:
		公有属性和函数
	protected:
		保护属性和函数
}

缺省为私有成员

class Man{
	int nAge;//私有成员
	char szName[20];//私有成员
	public:
		void SetName(char *Name){
			strcpy(szName, Name);
		}
};
class CEmployee{
	private:
		char szName[30];
	public:
		int salary;
		void setName(char * name);
		void getName(char * name);
		void averageSalary(CEmployee e1, CEmployee e2);
};
void CEmployee::setName(char *name){
	strcpy(szName, name);
}
void CEmployee::getName(char *name){
	strcpy(name, szName);
}
void CEmployee::averageSalary(CEmployee e1, CEmployee e2){
	salary = (e1.salary + e2.salary)/2;
}
int main(){
	CEmployee e;
	strcpy(e.szName, "Tom");//编译错,不能访问私有成员
	e.setName("Tom");//ok
	e.salary = 50000;//ok
	return 0;
}

设置私有成员的目的:强制要求对成员变量的访问一定要通过成员函数进行,这样可以隐藏私有成员,保证程序少出错容易修改。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值