本篇主要对C++进行复习回顾,最近参加了些笔试,发现c++的好多内容有点含糊不清了,所以决定通过博客来将这些东西都捡起来。可能会连更几期,希望大家多多关注哦!
1.C++简介
c++是一门面向对象的的编程语言,是在C语言的基础上实现的(C++就是C plus plus),因此C++可以兼容几乎所有的C语言,也可以调用C的库函数。C文件是以.C为后缀,C++是以.cpp为后缀的。
2.面向对象 和 面向过程的思想
面向过程是以计算机的角度去解决问题
①面向过程的程序设计都是围绕一个功能来实现的,一个函数实现一个功能。
②几乎所有数据都是公开的(当然除了特殊情况如:被static关键字修饰 等),可以被任意函数使用。
面向对象模拟人的思维
①对象:客观世界中,任何占据空间的事物实体都是对象,包含两部分(属性和行为)
//机器人是一个对象,属性用来描述静态特征,行为就是指他可以做的事情
//对象对外基本上都会屏蔽其内部细节,只留下少量的接口,方便与外界联系
②类:具有相似属性和行为的对象被归纳为一类,类就是用来描述他们的属性和行为的
类和对象:使用类可以创建出具有该属性和行为的对象
3.C++的特性
封装:将部分属性或者部分行为对外屏蔽,防止其访问,实现自己的数据隐藏
继承:新的类继承原有类的属性和行为,但是自己也可以添加新的属性和行为(子类和父类)
多态:同一个对象可以根据对应的信息作出多种不同的行为(函数重载,虚函数)
4.C++对C语言的链接性
在c++中如果想要调用c的函数,可以使用外部链接c语言
`例子:
extern "C"//编译以下代码时,将其当作c程序来编译,大写的C
{
//①可以直接编写c语句
//②也可以直接写c函数
int a;
void fun()
{
printf("123\n");
}
}`
5.名字空间namespace
一个项目可能会由很多个人一起编写,每个开发人员都需要定义自己的一些变量或者函数,但是这个时候可能出现多个人函数或者变量重名的情况;此时产生了名字空间,它就是专门用来存放自己的一些变量或者函数和类
namespace jia
{
int a,b,c,d;
void fun1();
void fun2();
}
namespace yi
{
int a,b,c,d;
void fun1();
void fun2();
}
名字空间也可以嵌套:
namespace bing
{
int a;
void fun1();
namespace ding
{
int b;
void fun2();
}
}
/*
bing::a = 10;
bing::ding::b = 2;
*/
使用名字空间:
①只需要在使用之前加上一个 using
using namespace jia;//namespace 别名 = 原名;
a = 1;
b = 2;//此时使用的就是jia中的变量
②使用::来指明变量或者函数的作用域
jia::a = 1;
yi::a = 10;