从c到c++———类和对象基本概念(一)

本文详细介绍了面向对象程序设计的基本概念,包括抽象、封装、继承和多态等核心特性。通过定义一个矩形类的例子,解释了如何创建类、对象以及成员函数,并展示了类的实例化和成员函数的调用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

面向对象的程序设计方法:

第一步:

将某类客观事物共同特点(属性)归纳出来,形成一个数据结构(可以用多个变量描述事物的属性);
将这类事物所能进行的行为也归纳出来形成一个个函数,这些函数可以用来操作数据结构(==这一步叫“抽象
==”)。

第二步:

然后,通过某种语法形式,将数据结构和操作该数据结构的函数“捆绑”在一起,形成一个“类”,从而使得数据结构和操作该数据结构的算法呈现出显而易见的紧密关系,这就是“封装”

面向对象的程序设计具有四个基本特点
            抽象、封装、继承、多态

类和对象:

下面我们定义一个矩形类:
属性:长,宽。
行为:面积,周长,长与宽的大小。

注:定义一个类结束时,必须有分号(;)

长、宽变量成为该“矩形类”的“成员变量,三个函数成为该类的成员函数。 成员变量和成员函数统称为类的成员。

成员函数是可以进行重载以及参数缺省

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

int main( ) 
{
	int w,h;
	CRectangle r; //r是一个对象,定义一个对象
	cin >> w >> h;
	r.Init( w,h);
	cout << r.Area() << endl << r.Perimeter();
	return 0;
}
说明:

通过类,可以定义变量。类定义出来的变量,也称为类的实例,就是我们所说的“对象” 。 C++中,类的名字就是用户自定义的类型的名字。可以象使用基本类型那样来使用它。CRectangle 就是一种用户自定义的类型

对象的内存分配:

和结构变量一样,对象所占用的内存空间的大小,等于所有成员变量的大小之和。对于上面的CRectangle类,sizeof(CRectangle) = 8

对象间的运算:

和结构变量一样,对象之间可以用 “=”进行赋值,但是不能用 “==”,“!=”,“>”,“<”“>=”“<=”进行比较,除非这些运算符经过了“重载”

使用类的成员变量和成员函数:

用法一:

对象名.成员名

CRectangle r1,r2;
r1.w = 5;
r2.Init(5,4);

注: Init函数作用在 r2 上,即Init函数执行期间访问的w 和 h是属于 r2 这个对象的, 执行r2.Init 不会影响到 r1。

用法二:

指针->成员名

CRectangle r1,r2;
CRectangle * p1 = & r1;
CRectangle * p2 = & r2;
p1->w = 5;
p2->Init(5,4); //Init作用在p2指向的对象上

用法三:

引用名.成员名

CRectangle r2;
CRectangle & rr = r2;  //这里使用了引用
rr.w = 5;
rr.Init(5,4); //rr的值变了,r2的值也变

类的成员函数可以和类的定义分开写:

class CRectangle
{
	public:
		int w, h;
		int Area() ;  //成员函数仅在此声明
		int Perimeter();
		void Init( int w_,int h_ );
}; //必须有分号


int CRectangle :: Area() { 
	return w * h; 
}
int CRectangle :: Perimeter(){ 
	return 2 * ( w + h); 
}
void CRectangle :: Init( int w_,int h_ ) {
	w = w_; h = h_;
}

CRectangle :: 表明后面的函数是CRectangle 类的成员函数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值