C++ 1 之 冲刺期末不挂科的入门
C++ 入门
- 先来几句废话
- 前言
- 什么是C++
- C++发展
- C++的重要性
- 如何学习C++
- C++关键字
- 来一个Hello World!!!
- 命名空间
- 定义一个普通的命名空间
- 命名空间可以嵌套使用
- 命名空间使用
- 方法一:
- 方法二:
- 使用using namespace 命名空间名称引入
- C++输入&输出
- 缺省参数
- 缺省参数概念
- 缺省参数分类
- 全缺省参数
- 半缺省参数
- 注意:
- 函数重载
- 总结
- 关于小编
先来几句废话
来自菜鸟的自术:我是学校学习的C++ 而自学的java 也不知道自己咋想的。全心去学习java了,就把学校的C++ 抛掷脑后了。但是吧,现在java基础语法已经学会了一大部分了,所以想着万一挂科了咋办,所以我又决定花几天学一下C++ 今天第一天,一周学三天。
前言
什么是C++
C++就是C语言的进阶,C++ == C Plus Plus 所以C++ 源程序的后缀为CPP。它既可以像C一样完成C语言的面向过程的程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行面向对象的程序设计。
C++发展
看图说事
其实就记住这个C++98 版 特别牛 所以现在都在用这个版本就完了
C++的重要性
学好了能做出撩妹的程序,就能追到小姐姐。学好了能不挂科,学好了能找到好工作。这三点够了。
如何学习C++
好好学就完了。哪里不会就问,哪里不会就扣代码,扣到秃顶也得学会,为了小姐姐,为了钱。有了小姐姐,就不缺对象。有了钱,就可以植发。
C++关键字
众所周知 C语言又32个关键字 而C++ 就牛掰了。他有 63 个 。当然包含了 C语言的关键字。
当然这些关键字没必要记。就像我们学习C语言似的。学到哪里懂哪里。到那里就懂了。
来一个Hello World!!!
#include<iostream>
using namespace std;int main()
{cout << "Hello World!!" << endl;return 0;
}
大家看这个代码,就是C++的第一个代码了。我们先看 namespace 关键字。这个关键字的作用就是定义或使用命名空间的。待我们看完博客再返回来看这个程序
命名空间
在C/C++中,变量、函数和后面要学到的类都是大量存在的,这些变量、函数和类的名称将都存在于全局作用域中,可能会导致很多冲突。使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突或名字污染,namespace关键字的出现就是针对这种问题的。
定义一个普通的命名空间
namespace N1
{int a = 0;int Add(int a, int b){return a + b;}
}
以上代码就是命名空间的定义了。其实一般情况下 我都叫它为域 定义一个域
命名空间可以嵌套使用
namespace N2
{int a;int b;int Add(int left, int right){return left + right;}namespace N3{int c;int d;int Sub(int left, int right){return left - right;}}
}
看如上代码,其实就是N3 域嵌套在了N2 域内,当然这里可以无限嵌套。当然不建议嵌套太多。
命名空间使用
在这里我们直接使用a会出现报错现象,为什么能识别呢?下面我看解释,就可以知道了。首先你输出时直接使用A 就像在结构体中直接定义 int a = 0 ; 而在主函数内也是一样不可以使用,是不是,这说明不在一块区间。找不到。那么怎么使用才是正确的呢?有以下三种方法。
方法一:
加命名空间名称及作用域限定符
这句话的意思只能用代码解释了
这样是不是就没有红色下划线了。就正确了,在这里::叫做域修饰符,也就是调用N域中的a;
当然这样是有缺点的 ,比如 每次使用都得调用,是不是会非常麻烦。下面看方法二。
方法二:
使用using namespace一口气把命名空间中所有的成员引入
using namespace std;
比如这样。就会变得特别简单,,当然在这里 你如果一下子把标准库std空间中的所有都引入了呢? std库中有那些东西都不知道 是不是会出现使用的库多了,又会造成命名冲突。那么这两种方法 都出缺点,有没有第三种方法呢?有的。第三种方法叫做部分引入
使用using namespace 命名空间名称引入
比如这样。当然平时在使用的时候 第一种方法是使用的最多的。只是我们平时比较懒,所有都喜欢第二种,
C++输入&输出
新生婴儿会以自己独特的方式向这个崭新的世界打招呼,C++刚出来后,也算是一个新事物,
那C++是否也应该向这个美好的世界来声问候呢?我们来看下C++是如何来实现问候的。
#include<iostream>
using namespace std;
int main()
{cout<<"Hello world!!!"<<endl;return 0; }
说明:
- 使用cout标准输出(控制台)和cin标准输入(键盘)时,必须包含< iostream >头文件以及std标准命名空间。
注意:早期标准库将所有功能在全局域中实现,声明在.h后缀的头文件中,使用时只需包含对应头文件即可,后来将其实现在std命名空间下,为了和C头文件区分,也为了正确使用命名空间,规定C++头文件不带.h;旧编译器(vc 6.0)中还支持<iostream.h>格式,后续编译器已不支持,因此推荐使用+std的方式。 - 使用C++输入输出更方便,不需增加数据格式控制,比如:整形–%d,字符–%c
#include <iostream>
using namespace std;
int main()
{int a;double b;char c;cin>>a;cin>>b>>c;cout<<a<<endl;cout<<b<<" "<<c<<endl;return 0; }
看C++ 的输入和输出会不会就比C语言好多了。简单到爽啊!!
在这里再回过头去看Hello World 程序。
是不是发现自己又懂了
缺省参数
大家知道什么是备胎吗?
C++中函数的参数也可以配备胎。
缺省参数概念
缺省参数是声明或定义函数时为函数的参数指定一个默认值。在调用该函数时,如果没有指定实参则采用该默认值,否则使用指定的实参。 当然这里也有称其为默认参数的。
void TestFunc(int a = 0)
{cout<<a<<endl;
}
int main()
{TestFunc(); // 没有传参时,使用参数的默认值
TestFunc(10); // 传参时,使用指定的实参
}
就像这样。没有参数是。a的值为0 有参数时 a 的值为传的参数。
缺省参数分类
在这里缺省参数分为 全缺省参数和半缺省参数
全缺省参数
void TestFunc(int a = 10, int b = 20, int c = 30)
{cout<<"a = "<<a<<endl;
cout<<"b = "<<b<<endl;
cout<<"c = "<<c<<endl;
}
就像这样 所有的形参都有默认参数,也就是 在使用的时候可以不穿参数就可以调用这个函数,这就叫做全缺省参数,当然在传一个参数的时候 就是把a 的值修改,两个则是修改b
半缺省参数
void TestFunc(int a, int b = 10, int c = 20)
{cout<<"a = "<<a<<endl;
cout<<"b = "<<b<<endl;
cout<<"c = "<<c<<endl;
}
在这里 假如第二个有默认参数。则第二个之后都要有默认参数,因为 如果传值传一个,测试赋值给第一个。
注意:
- 半缺省参数必须从右往左依次来给出,不能间隔着给
- 缺省参数不能在函数声明和定义中同时出现
//a.h
void TestFunc(int a = 10);
// a.c
void TestFunc(int a = 20)
{}
// 注意:如果生命与定义位置同时出现,恰巧两个位置提供的值不同,那编译器就无法确定到底该用那
//个缺省值。
- 缺省值必须是常量或者全局变量
- C语言不支持(编译器不支持)
缺省参数(默认参数就介绍到这里了。)
函数重载
什么是函数重载呢?函数重载:是函数的一种特殊情况,C++允许在同一作用域中声明几个功能类似的同名函数,这些同名函数的形参列表(参数个数 或 类型 或 顺序)必须不同,常用来处理实现功能类似数据类型不同的问题。其实就是:函数名相同,函数参数不同(参数个数及参数类型)。
int Add(int left, int right)
{return left+right;
}
double Add(double left, double right)
{return left+right;
}
long Add(long left, long right)
{return left+right;
}
int main()
{Add(10, 20);
Add(10.0, 20.0);
Add(10L, 20L);
return 0;
}
在这里。重载时调用他是根据字面意思调用,也就是比如 10 默认为int型常量,就去找int 型的
就像上面的实现方法似的,就可以实现函数的重载了,其实这里没什么主要记住,上面的表粗部分。
void f(int a, int b, int c = 1)
{}void f(int a, int b)
{}
看代码。如上构成重载嘛。答案是构成重载。但是他是一个坑。
如果我们传两个参数他就会报错,因为两个函数都可以被调用,不知道调用哪一个,成功把编译器搞蒙了。
总结
这就是今天学习的知识了。大家一起努力咯!!!!!!
关于小编
小编是一名正在奋斗的大一小骚年,希望能与大家一起学习哦。在编程的路上也希望能有朋友一起学习!!!这篇博客 是小编自己理解的写的,所以,有些地方可能有所不足,忘大家给予指点,错的越多后期越吃香。
小编qq号:2206730228
希望能与大家一起学习哦!!!!!!
C++ 1 之 冲刺期末不挂科的入门相关推荐
- 大学期末不挂科速成课-史上最全
每到期末肯定有不少小伙伴烦恼趴 今天他来了-史上最全大学期末不挂科速成课 以下链接是合集合集!!单科可以私聊小编喔!! https://download.csdn.net/download/qq_52 ...
- 【离散数学】期末不挂科复习笔记
[离散数学]期末不挂科复习笔记 和蜂考学的,重要的应该是逻辑和函数这两大板块,图和树就与数据结构挂钩了(大部分都是之前学过的),重点看看各种逻辑的等值演算还有推理! 第一章(命题逻辑的基本概念) 1. ...
- 【大学物理】期末不挂科复习笔记
[大学物理]期末不挂科复习笔记 猴博士yyds 打了*号的是重点 高斯定理 1.求通过某个面的电通量 *2.用高斯定理求场强 面电荷密度 x 面积 = 电荷量 注意: 有体积的物体需要分:体内和体外 ...
- 【数据结构】期末不挂科笔记
[数据结构]期末不挂科笔记 大纲去复习 简答题 1.哈夫曼树的构造.计算wpl 哈夫曼树的处理其实很简单,将所有的权值节点放入最小优先队列中,每次取队头的两个数出来,组成一棵树,这颗树就三个节点,头节 ...
- 只用半小时,只用半小时,只用半小时,给自己一个机会,看完保你web开发一期末不挂科,老师看了都说好
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到网站.点击这里 来还愿啦 Web开发(一)·期末不挂之第一章·Web开发基础(不背就挂的基础知识) Web开 ...
- 【大三期末不挂科 速通方法】电气控制与PLC
文章目录 前言 1. 常用低电压器 1.1 低压电器的定义和分类 1.2 电磁式电器的组成和工作原理 1.3 接触器 1.4 继电器 1.5 熔断器 2. 电气控制电路 2.1 电气图的基本知识 2. ...
- 单片机期末不挂科,看这一篇就够了
第一章 单片机概述 单选题知识点 1.MCU:单片机 EMPU:嵌入式微处理器 2.使用二进制的主要原因是 受器件的物理性能限制 3.手机中的双核是指: EMPU DSP 4.单片机与普通微型计算机的 ...
- c++ 图的连通分量是什么_【自考】数据结构第五章图,期末不挂科指南,第9篇
图的基本概念 首先,你要明确图是什么样子的,就是下面这个样子的 图的定义与术语 有向图和无向图 直接对比图就可以看出来,有向图和无向图的区别了,这个没有什么难的. 有向图和无向图的表示法有略微的区别, ...
- 实验一 线性表的顺序存储与实现_【自考】数据结构中的线性表,期末不挂科指南,第2篇
线性表 这篇博客写的是线性表相关的内容,包括如下部分,先看下有木有期待 啥是线性表 线性表的顺序存储 线性表的基本运算在顺序表上的实现 线性表的链式存储 线性表的基本运算在单链表上的实现 循环链表与双 ...
最新文章
- 常用的Linux服务器各项性能指标查看方法!
- javascript pattern
- weex的实践踩坑日常(一)
- 24.command-executor
- 气象背景场_“把脉”风雨 服务为民——甘肃研究型气象预报业务体系发展扫描...
- 2021年考计算机考研三战,考研越来越难,2021考研人将会面临哪三大挑战?
- pt5 mysql预处理_技术分享 | MySQL 监控利器之 Pt-Stalk
- 创业失败感悟第二十九天
- SimpleDateFormat时间日期格式化,时间日期类使用示例
- php 网络图片 execl,phpexcel图片获取
- 淘宝开放接口api分享
- mt2503短信數量和定義的不一致
- C# BackgroundWorker的用法
- php解析.krc,krc歌词文件解析
- java解压zip和rar并解决乱码问题
- 小心 transmittable-thread-local 的这个坑
- Redis(设置失效时间,RedisDesktopManger远程管理工具)
- PHP面向对象开发:类成员的相关知识
- 计算机科学与探索期刊审稿周期,计算机科学与探索杂志
- mysql获得每条记录_如何在MySQL查询结果集中得到每条记录的行号
热门文章
- Matplotlib绘制自定义函数曲线
- 购买邮箱需要注意什么?教你发件邮箱购买流程
- 如何加声调口诀_拼音标声调的口诀歌
- CSDN官方积分方法
- 笔记本电脑中预装的office产品不小心被删除了解决方案
- c 朗读html,朗读《送杜少府之任蜀》
- 修复 ,Ubuntu无法开机:ACPI:Error:[_SB_.PCIO.PR05.PXSX] …………
- FDE之要求密码开机流程
- Play 1.x 学习资料汇总
- Thinkpad E450c开启Intel virtual technology