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; }

说明:

  1. 使用cout标准输出(控制台)和cin标准输入(键盘)时,必须包含< iostream >头文件以及std标准命名空间。
    注意:早期标准库将所有功能在全局域中实现,声明在.h后缀的头文件中,使用时只需包含对应头文件即可,后来将其实现在std命名空间下,为了和C头文件区分,也为了正确使用命名空间,规定C++头文件不带.h;旧编译器(vc 6.0)中还支持<iostream.h>格式,后续编译器已不支持,因此推荐使用+std的方式。
  2. 使用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;
}

在这里 假如第二个有默认参数。则第二个之后都要有默认参数,因为 如果传值传一个,测试赋值给第一个。

注意:

  1. 半缺省参数必须从右往左依次来给出,不能间隔着给
  2. 缺省参数不能在函数声明和定义中同时出现
//a.h
void TestFunc(int a = 10);
// a.c
void TestFunc(int a = 20)
{}
// 注意:如果生命与定义位置同时出现,恰巧两个位置提供的值不同,那编译器就无法确定到底该用那
//个缺省值。
  1. 缺省值必须是常量或者全局变量
  2. 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 之 冲刺期末不挂科的入门相关推荐

  1. 大学期末不挂科速成课-史上最全

    每到期末肯定有不少小伙伴烦恼趴 今天他来了-史上最全大学期末不挂科速成课 以下链接是合集合集!!单科可以私聊小编喔!! https://download.csdn.net/download/qq_52 ...

  2. 【离散数学】期末不挂科复习笔记

    [离散数学]期末不挂科复习笔记 和蜂考学的,重要的应该是逻辑和函数这两大板块,图和树就与数据结构挂钩了(大部分都是之前学过的),重点看看各种逻辑的等值演算还有推理! 第一章(命题逻辑的基本概念) 1. ...

  3. 【大学物理】期末不挂科复习笔记

    [大学物理]期末不挂科复习笔记 猴博士yyds 打了*号的是重点 高斯定理 1.求通过某个面的电通量 *2.用高斯定理求场强 面电荷密度 x 面积 = 电荷量 注意: 有体积的物体需要分:体内和体外 ...

  4. 【数据结构】期末不挂科笔记

    [数据结构]期末不挂科笔记 大纲去复习 简答题 1.哈夫曼树的构造.计算wpl 哈夫曼树的处理其实很简单,将所有的权值节点放入最小优先队列中,每次取队头的两个数出来,组成一棵树,这颗树就三个节点,头节 ...

  5. 只用半小时,只用半小时,只用半小时,给自己一个机会,看完保你web开发一期末不挂科,老师看了都说好

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到网站.点击这里 来还愿啦 Web开发(一)·期末不挂之第一章·Web开发基础(不背就挂的基础知识) Web开 ...

  6. 【大三期末不挂科 速通方法】电气控制与PLC

    文章目录 前言 1. 常用低电压器 1.1 低压电器的定义和分类 1.2 电磁式电器的组成和工作原理 1.3 接触器 1.4 继电器 1.5 熔断器 2. 电气控制电路 2.1 电气图的基本知识 2. ...

  7. 单片机期末不挂科,看这一篇就够了

    第一章 单片机概述 单选题知识点 1.MCU:单片机 EMPU:嵌入式微处理器 2.使用二进制的主要原因是 受器件的物理性能限制 3.手机中的双核是指: EMPU DSP 4.单片机与普通微型计算机的 ...

  8. c++ 图的连通分量是什么_【自考】数据结构第五章图,期末不挂科指南,第9篇

    图的基本概念 首先,你要明确图是什么样子的,就是下面这个样子的 图的定义与术语 有向图和无向图 直接对比图就可以看出来,有向图和无向图的区别了,这个没有什么难的. 有向图和无向图的表示法有略微的区别, ...

  9. 实验一 线性表的顺序存储与实现_【自考】数据结构中的线性表,期末不挂科指南,第2篇

    线性表 这篇博客写的是线性表相关的内容,包括如下部分,先看下有木有期待 啥是线性表 线性表的顺序存储 线性表的基本运算在顺序表上的实现 线性表的链式存储 线性表的基本运算在单链表上的实现 循环链表与双 ...

最新文章

  1. 常用的Linux服务器各项性能指标查看方法!
  2. javascript pattern
  3. weex的实践踩坑日常(一)
  4. 24.command-executor
  5. 气象背景场_“把脉”风雨 服务为民——甘肃研究型气象预报业务体系发展扫描...
  6. 2021年考计算机考研三战,考研越来越难,2021考研人将会面临哪三大挑战?
  7. pt5 mysql预处理_技术分享 | MySQL 监控利器之 Pt-Stalk
  8. 创业失败感悟第二十九天
  9. SimpleDateFormat时间日期格式化,时间日期类使用示例
  10. php 网络图片 execl,phpexcel图片获取
  11. 淘宝开放接口api分享
  12. mt2503短信數量和定義的不一致
  13. C# BackgroundWorker的用法
  14. php解析.krc,krc歌词文件解析
  15. java解压zip和rar并解决乱码问题
  16. 小心 transmittable-thread-local 的这个坑
  17. Redis(设置失效时间,RedisDesktopManger远程管理工具)
  18. PHP面向对象开发:类成员的相关知识
  19. 计算机科学与探索期刊审稿周期,计算机科学与探索杂志
  20. mysql获得每条记录_如何在MySQL查询结果集中得到每条记录的行号

热门文章

  1. Matplotlib绘制自定义函数曲线
  2. 购买邮箱需要注意什么?教你发件邮箱购买流程
  3. 如何加声调口诀_拼音标声调的口诀歌
  4. CSDN官方积分方法
  5. 笔记本电脑中预装的office产品不小心被删除了解决方案
  6. c 朗读html,朗读《送杜少府之任蜀》
  7. 修复 ,Ubuntu无法开机:ACPI:Error:[_SB_.PCIO.PR05.PXSX] …………
  8. FDE之要求密码开机流程
  9. Play 1.x 学习资料汇总
  10. Thinkpad E450c开启Intel virtual technology