C++从入门到入土(二)——初步认识类与对象

目录

前言

类与对象的引入

类的定义

类的访问限定符及封装

访问限定符:

封装:

类的作用域

类的实例化

类的大小

this指针

this指针的特性


前言

各位佬们,在开始本篇文章的内容之前,我想先向大家道个歉,由于最近学习任务繁重,因此博客更新比较缓慢(实际上是因为我比较懒,哈哈哈)。在上一篇博客,我简单介绍了C++的一些基础知识,而这些基础知识则是为本篇博客打基础的,今天这篇博客则是开始介绍C++的关键部分,类与对象。如果我的博客对您有所帮助的话,希望能够点赞关注加转发,您的支持就是对我创作的最大鼓励。

类与对象的引入

首先我们要明白一点,C++这门语言实际上是在弥补C语言的各种缺陷中逐渐创造出来的一门新的编程语言,因此类与对象这个概念同样是为了弥补C语言在使用上的一些缺陷而引出来的,那么是什么样的缺陷导致要引入这一概念呢?在探讨这个问题之前我想先回顾一下C语言结构体的相关概念,比如我们要描述一个人的信息,我们可以创建一个结构体,里面包含了诸如:姓名、年龄、升高、体重等信息,当我们定义出这些信息后,C语言是通过各种不同的函数去实现这些不同的功能,因此可以这样说:C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题。通过这样的方式写出来的程序可能会导致这样的问题:比如在一个大型项目中,函数的实现与我们所定义的变量距离太远,那么对于阅读代码的人来说就会很麻烦,代码的可读性就会降低。为了解决这个问题C++提供了一个新的解决方法,就是将变量与函数定义在一起, 以顺序表为例:

typedef int SLDataType;
struct SeqList
{
public:
	void SeqListInit(struct SeqList*ps)
	{
		ps->arr = nullptr;
		ps->capacity = ps->size = 0;
	}
	void CheckCapacity(struct SeqList* ps)
	{
		if (capacity == size)
		{
			int newcapacity = capacity == 0 ? 4 : 2 * ps->capacity;
			SLDataType* tmp = (SLDataType*)realloc(arr, sizeof(SLDataType) * newcapacity);
			if (tmp == nullptr)
			{
				perror("realloc fail");
				exit(1);
			}
			ps->arr = tmp;
			ps->capacity = newcapacity;
		}
	}
private:
	SLDataType* arr;
	int capacity;
	int size;
};

C++中用class代替struct。 

你可能感兴趣的:(c++,开发语言)