类和对象可谓是我所认为进入C++遇到的第一个大难关,我起码在这里卡了好几天,正好把疑难杂病一起解决了哈哈哈。
面向过程和面向对象初步认识
面向过程的编程语言主要就是C语言,面向对象就有很多了,类似于Java、python等语言,C++因为兼容C,所以是基于对象的编程语言,还是有些许差别的。
面向过程:
面向对象: 是以分析有几个对象来解决问题的,但目前我们处于初阶,不用太在意,慢慢感受就行了。
类和对象
我们都知道结构体类型吧,在C++中,我们依旧使用该关键字,只不过我们的老本给ta升级了一下,老本升级的目的就是让C++更方便,严谨。
类的用法:我们可以在类里面建立类的对象(成员变量集合)(实例化对象),建立成员函数。
struct Rjh
{
;
};
类似于类的关键字加类的名字(自定义名),“{}”里是类的主体,可以定义成员函数,成员变量。
注意:写完类之后要写“;”,不然会报错。
而且C++更喜欢用class来作为类的关键词,即class Rjh。
成员变量
类中的变量称为类的属性或成员变量,成员变量的好处就是可以在成员函数中直接使用,等会我们一起来看一下直接使用的便捷(C与C++对比)。
我们来写一下代码:
#pragma once
#include<iostream>
class Data
{
public:
void Init(int year = 1, int month = 1, int day = 1);//声明
void Print(int year = 1, int month = 1, int day = 1);
private:
int _year, _month, _day;
};
其中的_year,_month,_day就是成员变量。
这就不得不提类的实例化对象了,我们在类创建一个个成员函数和成员变量的结果就是实例化对象。成员变量的集合是对象,或者我们可以理解成变量在C++中更喜欢以对象来称呼。
成员函数
成员函数没啥可说,就是上一张代码图的public部分,有人可能会问,public和private是干什么的,那接下来我们就来讲一讲访问限定符。
访问限定符
我们目前先认为2,3两个没什么区别,都是让外部域无法调用他们,以达到封装的目的。
public是公开,任何域都可以访问他们。这样C++就让语言更加严谨不乱,不会混淆。
C++于C在栈的构建上的优点
这张图很明显不需要传入结构体指针的,只需要引用成员变量就行了,这就是C++的快人一步,而且更加严谨因为封装的原因。
注意:成员变量不是形参,C++为了让我们方便使用,严谨使用,想法是直接定义一些成员变量直接在成员函数里用,不用调用指针变量指向结构体成员就能在函数里使用多快呀,所以说,老本的这个类和对象构建的可谓是巧夺天工。