【C++】入门基础

在这里插入图片描述

个人主页:C_GUIQU
归属专栏:C++

在这里插入图片描述

目录

  • 1. 初识 C++
    • 1.1 发展史
    • 1.2 常见概念
    • 1.3 常见头文件
    • 1.4 关键字
  • 2. 输入和输出
  • 3. 命名空间
  • 4. 缺省参数
    • 4.1 缺省参数的定义
    • 4.2 缺省参数的调用方式
  • 5. 函数重载
    • 5.1 函数重载的定义
    • 5.2 函数重载的调用
  • 6. 指针空值 nullptr
    • 6.1 `nullptr` 的定义和用途
    • 6.2 `nullptr` 的类型安全性
    • 6.3 `nullptr` 的自动转换

正文

1. 初识 C++

1.1 发展史

C++ 是一种强大的通用编程语言,由 Bjarne Stroustrup 在 20 世纪 80 年代开发,最初是作为 C 语言的扩展。它结合了面向对象编程和低级编程的灵活性,适用于系统编程、游戏开发和高性能应用等领域。

【来源】1982年,Bjarne Stroustrup博士在C语言的基础上引入并扩充了面向对象的概念,发明了一种新的程序语言。为了表达该语言与C语言的渊源关系,命名为C++。

C++ 的发展分为几个重要阶段:

  • 1979 年:Bjarne Stroustrup 开始在 AT&T 开发 “C with Classes”。
  • 1983 年:C++ 正式出现。
  • 1998 年:ISO/IEC 标准化的 C++98 发布,确立了许多核心特性。
  • 2011 年:C++11 版本引入了智能指针、Lambda 表达式、nullptr 等现代特性。
  • 2014 和 2017 年:C++14 和 C++17 继续优化并引入了一些实用的新特性。
  • 2020 年:C++20 增加了协程、概念和模块等特性。

【C++的历史版本】
在这里插入图片描述

1.2 常见概念

  • 面向对象编程 (OOP):支持类和对象,具有封装、继承、多态等特性。
  • 泛型编程:通过模板 (Templates) 实现代码的复用。
  • 内存管理:C++ 提供了指针和手动内存控制。

C语言是结构化和模块化的语言,适合处理较小规模的程序。

【概念】C++是基于C语言而产生的,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行面向对象的程序设计。

【性质】

  • 面向对象
  • 三大特性:封装,继承,多态。

【C语言和C++的关系】
在这里插入图片描述

重要性不言而喻

【4个层次】

  • 第一个层次,C++基础 (平平常常)
  • 第二个层次,正确高效的使用C++ (驾轻就熟)
  • 第三个层次,深入解读C++ (出神入化)
  • 第四个层次,研究C++ (返璞归真)

【建议】中后期画思维导图总结。

【摘录】 最后,我说一说我的一些感受:

  • 这些年来的对于外企和国内感受—— 国外牛B的IT公司的工程能力并不见得比国内的要强多少,但是国外那些NB的IT公司的架构和设计能力远远超过国内的公司,最可怕的是,那些有超强架构和设计能力的“老程序员们”还战斗在一线,这些战斗在一线的老鸟的能力绝对超过100个普能的新手。
  • 对年轻程序员的感受——国内新一代的程序员们太浮燥了。老实说,对于大多数人来说,如果你没有编程到30岁,你还不能成为一个“合格”的程序员。所以,并不是编程编到30岁就玩完了,而是编程编到30岁才刚刚入门。这些不合格的程序,整天BS这个不好,那个不好的,而且喜欢速成,好大喜功。
  • 我是一个奔四的人了,编程就像登山一样,越往上爬人越少,所以,在我这个年纪还有想法,对编程还有热情的人不多了,基本上都是转Manager了。其实,什么职位,Title都是虚的,公司没了什么都没了,只有技术才是硬通货。而且,越是这个年纪还在玩编程玩技术的人,其实其经验和能力都是比较强的,都是中坚力量,如果还有其它这个年纪和我一样的人,求交往。

1.3 常见头文件

  • <iostream>:标准输入输出流 cincout
  • <vector>:动态数组 std::vector
  • <string>std::string 字符串处理。
  • <algorithm>:提供 sortfind 等常用算法。

1.4 关键字

C++ 中的关键字是语言的基础元素。以下是一些常用关键字:

  • 数据类型intfloatdoublecharvoidbool
  • 控制结构ifelseforwhileswitchcasebreakcontinue
  • 类与对象classpublicprivateprotectedthisfriend
  • 内存管理newdelete
  • 异常处理trycatchthrow
  • 其他returnnamespaceusingconstexprnullptr

C语言32个关键字,C++总计63个关键字。
后期学习慢慢了解。

asm 
do 
if 
return 
try 
continue 
auto 
double 
inline 
short 
typedef 
for 
bool 
dynamic_cast 
int 
signed 
typeid 
public 
break 
else 
long 
sizeof 
typename 
throw 
case 
enum 
mutable 
static 
union 
wchar_t 
catch 
explicit 
namespace 
static_cast 
unsigned 
default 
char 
export 
new 
struct 
using 
friend 
class 
extern 
operator 
switch 
virtual 
register 
const 
false 
private 
template 
void 
true 
const_cast 
float 
protected 
this 
volatile 
while 
delete 
goto 
reinterpret_cast

2. 输入和输出

C++ 中,<iostream> 头文件定义了标准输入输出流对象:

  • cin:读取输入。
  • cout:输出信息。

示例代码:

#include<iostream>

int main()
{
   
   
        std 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Guiat

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值