c++第一课 和c语言的差别
2022/1/8 11:04:03
本文主要是介绍c++第一课 和c语言的差别,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
c与 c++的区别:
c语言采用了一种有序的编程方法-结构化编程:将一个大型程序分解为一个个小型的、易于编写模块,所有的模块有序的调动起来形成了一个程序的完整的运行链。这种结构化编程反映出来过程性编程的思想,即c语言是一门面向过程的语言,更注重程序实现逻辑、怎么更好、更快、更直接的完成某一功能。
c语言是一种面向过程变成的语言 在,在编写大型项目时,并不利于程序的 复用性、扩展性,导致在后期维护时带来很多繁琐的工作,面临巨大挑战。针对于此,OOP(Object-Oriented Programming)的概念诞生了,与结构化编程不同的是,OOP更注重数据,让语言来满足问题的需求,设计出与问题本质特性相对应的数据格式。
OOD(Object-Oriented Design) :面向对象的设计
OOA(Object-Oriented Analysis) :面向对象的分析
c++是一门面向对象编程的语言,更注重的是程序整体的设计,后期方便维护、优化和管理,让一个功能尽可能地通用。这就是常说的面向过程和面向对象,其本质还是在其设计思想上。
c++是由c衍生出来的一门语言,不但兼容包含了c语言还增加了一些新特性继承、多态,函数重载,支持泛型编程(模板函数、模板类),强大的STL库等。
面向对象的三大特性:封装、继承、多态。
封装:将零散的数据和算法放到一个集合里,方便管理和使用
复用性: 公共功能 过程的抽象 体现为能被重复使用的类 或方法 就要求我们针对某一类功能区开发而不是针对某一个功能去设计
拓展性: 增加新的功能不影响已经封装好的功能
下面这段代码 就是展现了c++的拓展性和复用性
#include <stdio.h> struct S_Add { int Add(int a, int b) { return a + b; } double Add(double a, double b) { return a + b; } char Add(char a, char b) { return a + b; } };
根据加法 利用struct 结构体将不同类型分别进行定义 int double char 类型的统一定义
c++输出与输入
<< :输出操作符
Cout<<a<<b;
Cout<<a<<" "<<b ; 空格 中间
cout << a <<" " << b<<endl; 换行
<<endl 加在结尾是换行 !
Cout<<::a<<endl;
:: 是作用域运算符 全局变量作用域
#include<iostream>//输入输出流,不加.h using namespace std;//打开一个std(标准)命名空间 int main(){ int a=10; char b='b'; cout<<" "<<b<<endl; return 0; }
>>:输入操作符
Cin>>a>>b;
如果对小数想保留后两位
cout << fixed << setprecision(2) << c
#include<iostream>//输入输出流,不加.h using namespace std;//打开一个std(标准)命名空间 int main(){ int a=10; char b='b'; cin>>a>>b; cout<<a<<" "<<b<<endl; return 0; }
命名空间的创建打开与嵌套
#include<iostream>//输入输出流,不加.h using namespace std;//打开一个std(标准)命名空间 //使用一个命名空间 //1using namespace std命名空间 //2手动指定命名空间及成员 //3显示的指定 //定义命名空间:区分同一个作用于下的相同成员 namespace AA{ int A=20; void show(){ cout<<"AA::show"<<endl; } int c=40; }; using AA::c;//打开AA空间全局并使用全局变量c using AA::A;//打开AA空间全局并使用全局变量A //作用域:成员能使用的一个范围 nemaspace BB{ int A=30: namespace CC{ //命名空间的嵌套 int A=50; } }; using namespaceBB::CC; //打开BB空间里面的CC空间 int main(){ int a=10; char b='b'; cout<<" "<<b<<endl; return 0; }
这篇关于c++第一课 和c语言的差别的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-09-28pyqt 怎么打包整个项目-icode9专业技术文章分享
- 2024-09-28laravel Commands 创建带有参数的 Artisan 命令的步骤和示例-icode9专业技术文章分享
- 2024-09-28antd怎么实现渲染tiff图片-icode9专业技术文章分享
- 2024-09-28英文半角中划线和中文全角的中划线有什么区别-icode9专业技术文章分享
- 2024-09-28nvm npm 和node 他们之间有什么关系-icode9专业技术文章分享
- 2024-09-28Node Version Manager (nvm)使用教程-icode9专业技术文章分享
- 2024-09-28nvm命令太慢,是什么原因-icode9专业技术文章分享
- 2024-09-28Kotlin 如何增加、删除和修改 MutableStateFlow 中的值。-icode9专业技术文章分享
- 2024-09-28Kotlin的stateFlow.update 写法介绍-icode9专业技术文章分享
- 2024-09-28kotlin 怎么获取当前时间格式-icode9专业技术文章分享