C++:类与对象(上)

本文介绍了C++中类的基本概念,包括类的定义、访问限定符(public,protected,private)、封装、作用域、实例化、类的大小以及this指针的使用和特性。通过比较C和C++在解决问题上的差异,阐述了面向对象编程的核心思想。

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

目录

前言:

一、类概念的引入

二、类的定义

三、类的访问限定符与封装

1、访问限定符

2、封装

四、类的作用域

五、类的实例化

六、类的大小

七、类的this指针

this指针的特性


前言:

C++与它的老朋友C语言不同,C语言是面向过程的,主要关注的是分析解决问题的步骤,通过不断的用函数调用去解决问题。

而C++是一款面向对象的语言,把问题拆解成许多对象,通过对象间的交互来解决问题。

拿同样是洗衣服这件事情来举例,C语言是关注:拿洗衣盆->放水->放衣服->放洗衣粉->手搓......的过程。而C++是关注:人,洗衣粉,衣服,洗衣盆这四个对象,通过对象自己间的交互来完成洗衣服这件事情。

一、类概念的引入

C语言中有个结构体的概念,可以代表人,玫瑰花,狮子等不同的事物。但是我们只能在这里面定义成员变量,也就是说,我们在C语言中定义的人,只会被我们赋予年龄,性别,身高等属性。但在C++中,我们可以在结构体中额外定义成员函数,相当于我们赋予了人抬手,蹲下,做饭,结婚等动作。

这使不同的结构体之间可以有所交互,这就是C++的面向对象特性的主要特点。

//C语言中的人
struct People
{
	int age;
	char name[10];
	char gender[10];
	//......
};
//C++中的人
struct People
{
public:
	void Grow_up();//长大
	void Get_Marry();//结婚
	//.......
private:
	int age;
	char* name;
	char* gender;
	//......
};

在上面我们可以分别看见在C语言与C++环境下的People结构体的定义。但是C++中,我们一般用class来代替struct,我们通常称class为一个类。虽然C++同样可以使用struct结构体,但两者有些差别,我会在后面给大家补充。

二、类的定义

class是我们定义类所使用的关键字,使用方法跟定义结构体类似,我们可以在类的主体部分定义成员变量与成员函数。

类通常有两种定义方式,第一种就是声明与定义全部放在类体中,但需要注意的是,如果函数是在类里面定义的,编译器可能默认会将函数处理成内联函数。

第二种方法就是类声明放在.h头文件中,定义放在.cpp源文件上,一般来说,除非迫不得已,我们更推荐使用第二种定义方式。但需要注意的是,由于类域的限制,我们在.cpp文件中写定义的时候,要在函数名前加上类名::

这一点就跟C语言模拟实现栈,队列等数据结构一样。

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

渡我白衣

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值