这可能是你见过最通俗的讲法——C++类(1)

本文通过一个生动的例子,讲解了如何使用类(class)和结构体(struct)来表示对象的特性和行为,介绍了类的定义方式,成员变量的访问,以及如何在类内部定义函数。

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

首先,请你拿出一张白纸,在最上面画一个方框,写上所有你能想到的人的特点(好的坏的奇葩的都要)
在这里插入图片描述
然后,在方框下边画两条斜杠,左边写上你爸爸的一些特点,右边写上你妈妈的一些特点
在这里插入图片描述

你会发现,在下边两个方框中,总会有一些上面方框里边的特点:
在这里插入图片描述

为什么呢?很简单,他们都属于,而爸爸妈妈属于人的分支(包括你)
然而你也会发现:有些是你在上面没有写出来但是爸爸妈妈却有的,这也很好解释,虽然他们都是人,但是他们有各自的特点
好了,放下你的纸和笔,我们开始讲正事


如果让你用结构体来表示你的爸爸妈妈以及人的特点,你会如何表示?

struct 人{
	勤劳();
	懒惰();
	爱抽烟();
	//还有很多
}
struct 爸爸{
	懒惰();
	大手大脚();
	爱抽烟();
	爱管闲事();
	没钱();
	聪明();
};

那你妈妈呢?

struct 妈妈{
	勤劳();
	唠叨();
	聪明();
	会赚钱();
	无所不能();
}

既然他们都“人”这个特性中的一部分,我们可不可以只用一个结构体,而表达出更多的人的特点?可以

struct 人{
	勤劳();
	懒惰();
	爱抽烟();
	//还有很多
}人们[200000];

but,你会发现数组的大小是有限制的,而且并不是所有人都有所有的特征
这个时候,class就排上了用场


网上说:定义一个类,本质上是定义一个数据类型的蓝图。这实际上并没有定义任何数据,但它定义了类的名称意味着什么,也就是说,它定义了类的对象包括了什么,以及可以在这个对象上执行哪些操作。
我说:定义一个类就是定义了巧克力模型,你往里边放巧克力浆,冷冻后就有巧克力吃

类可以在只定义一个基础,而派生出(你可以理解为分支出)很多有各自特色,但是又没有离开基础的类,而一个类中可能有函数,可能有变量,我们统称为这个类的方法,方法决定了这个类可以干啥

比如生物是个类,而生物派生出了植物动物和微生物,植物又有很多种,动物也有很多种,微生物也有很多种,虽然他们都有“生物”的特点,但是他们还有自己的特点。在这里,生物处于父类,而植物动物微生物是生物的子类,而对于奇花异草来说,植物又是他们的父类(可以理解成树种子节点和父节点)

好了,接下来我们将以“盒子”作为父类,如何实现定义一个类:

class  Box{
public:
	int len;
	int weidth;
	int high;
};

public关键字说明了len,weidth,high这些变量是可以访问、修改的
那我们尝试去“修改”一下这三个变量

#include <iostream>
using namespace std;
class  Box{
public:
	int len;
	int weidth;
	int high;
};
int main(){
	Box box1;
	box1.len 1;
	box1.weidth = 2;
	box1.high = 3;
	cout <<  "box1.len = "<<box1.len<<"\nbox1.weidth =" << box1.weidth << "\nbox1.high=" << box1.high;
}

你是不是实现了?
其实到目前为止,class和struct的用法是基本相似的
如果我想写函数咋办?

class  Box{
public:
	int len;
	int weidth;
	int high;
	int v(){
		return len*weidth*high;
	}
};

你可以这么写,还可以在类的外部定义函数(当出现继承时你就会发现这种方法的好处)

class  Box{
public:
	int len;
	int weidth;
	int high;
	int v();
};
int Box::v(){
	return len*weidth*high;
}

怎么调用?很简单:

box1.v();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值