提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
目录
前言
分享一句话:
UNIX操作系统简单而一致,但只有天才(至少程序员)才能领会并欣赏其简单性。
——Dennis Ritchie
提示:以下是本篇文章正文内容,下面案例可供参考
一、面向对象与面向过程是什么?
1.面向过程
C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数的调用逐步解决问题。
这句话怎样去理解呢?
举个例子:
今天我想吃红烧肉那我就要准备材料
制作时的步骤:
第一步:五花肉清洗干净,整条放入开水中灼烫30秒;
第二步:捞出放在水龙头下冲洗至凉透,切厚块,放进开水锅中焯水;再次捞出放在水龙头下冲洗至凉透,放进开水锅中再次焯水,捞出沥干水分;
第三步:锅里放油,冷油放入桂皮、香叶和八角,小火炒出香味;
第四步:加入五花肉一起煸炒,使油脂流出,减少腻味;
第五步:五花肉煸炒至两面稍为微黄;
第六步:放入冰糖或者红糖,草菇老抽和生抽、盐;
第七步:翻炒均匀,让每块肉都上色;
第八步:加入没过全部材料的热开水,不用盖锅盖,大火煮开,捞走浮沫;
第九步:加入姜片和枣,大火煮开后转小火炖煮40分钟~1小时;
第十步:大火收汁;
第十一步:边收汁边翻炒;
第十二步:直到酱汁浓稠,每块五花肉上都裹着酱汁即可。
2.面向对象
C++是基于面向对象的,关注的是对象,将一件事情才分成不同的对象,靠对象之间的交互完成。
想吃红烧肉,直接去饭馆点一份红烧肉
那对象有三个:人,钱,饭馆。
整个过程为:人去饭馆去点菜,然后付钱。
整个过程不需要你明白红烧肉是如何制作的。
二、类的引入
C的结构体只能定义变量,在C++中结构体不仅可以定义变量,也可以定义函数。
代码如下(示例):
struct Student
{
char _name[10];
int _age;
int _id;
void INT(const char* name,int age,int id)
{
strcpy(_name, name);
_age = age;
_id = id;
}
void print()
{
cout << "姓名: " << _name << endl;
cout << "年龄: " << _age << endl;
cout << "ID: " << _id << endl;
}
};
但是在C++中我们更喜欢用class来定义
代码如下(示例):
class MyClass
{
//类体:成员函数与成员变量
};
class为定义类的关键字,MyClass为类的名字,{}中为类的主体,注意类定义结束时后面分
号不能省略。
类体中内容称为类的成员:类中的变量称为类的属性或成员变量; 类中的函数称为类的方法或者成员函数。
类的两种定义方式:
方法一
1. 声明和定义全部放在类体中,需注意:成员函数如果在类中定义,编译器可能会将其当成内联函数处理。
class MyClass
{
private:
int _a;
int _b;
public:
int sum(int a, int b)
{
return a + b;
}
void print()
{
cout << _a << endl;
cout << _b << endl;
}
};
方法二
2. 类声明放在.h文件中,成员函数定义放在.cpp文件中,注意:成员函数名前需要加类名::
.h的文件
.c的文件
三、类的访问限定符与封装
1.访问限定符
一共分为3种:
public(公有)
protected(保护)
private(私有)
访问限定符说明】
1. public修饰的成员在类外可以直接被访问
2. protected和private修饰的成员在类外不能直接被访问(此处protected和private是类似的)
3. 访问权限作用域从该访问限定符出现的位置开始直到下一个访问限定符出现时为止
4. 如果后面没有访问限定符,作用域就到 } 即类结束。
5. class的默认访问权限为private,struct为public(因为struct要兼容C)
2.封装
在类和对象阶段,主要是研究类的封装特性,那什么是封装呢?
封装:将数据和操作数据的方法进行有机结合,隐藏对象的属性和实现细节,仅对外公开接口来和对象进行交互。封装本质上是一种管理,让用户更方便使用类。
在C++语言中实现封装,可以通过类将数据以及操作数据的方法进行有机结合,通过访问权限来隐藏对象内部实现细节,控制哪些方法可以在类外部直接被使用。
3.作用域
类定义了一个新的作用域,类的所有成员都在类的作用域中。在类体外定义成员时,需要使用 ::作用域操作符指明成员属于哪个类域。
代码如下:
class Stack
{
private:
int* _a;
int _top;
int _capacity;
public:
void Init();
void Push(int x);
};
void Stack::Init()
{
_a = nullptr;
_top = _capacity = 0;
}
总结
提示:这里对文章进行总结:
今天就讲到这里,内容还没有讲解完等待后续补充谢谢