• 初识Cpp之 一、基础知识


    一、基础知识

    写在前面:在这个专题,我将会把自己学习Cpp的笔记整理为几个部分,与大家分享,主要的参考资料是B站上的课程链接如下:https://www.bilibili.com/video/BV1et411b73Z?p=237&vd_source=d02fb26eb2345ac42c054db0bb8d8864
    主要的参考书籍是《Cpp Primer Plus》

    (1)前言

    ​ C++融合了三种不同的编程方式:1、C语言代表的过程性语言,2、C++在C语言的基础上添加的类代表的面向对象语言,3、C++模板支持的泛型编程。使用C++的原因之一是为了利用其面向对象的特性。要利用这种特性,必须对标准C语言知识有较为深入的了解,因为它提供了基本类型、运算符、控制结构和语法规则。

    ​ 面向对象编程(Object Oriented Programming, OOP)的诞生,试图让语言来满足问题的要求,其理念是设计与问题本质特性相对应的数据格式。在C++中,类是一种规范,它描述了这种新型数据格式,对象是根据这种规范构造的特定数据结构。OOP编程是将数据和方法合并为类定义,这样能起到信息隐藏的作用。多态能够让你为运算符和函数创建多个定义,通过编程上下文来确定使用哪个定义。继承能够让你使用旧类派生出新类。

    ​ 泛型编程(Generic Programming)是C++支持的另一种编程模式,OOP强调的是编程的数据方面,而泛型编程强调的是独立于特定数据类型。OOP是一个管理大型项目的工具,而泛型编程提供了执行常见任务的工具。

    ​ 名称C++来自C语言的递增运算符C++,该运算符将变量自加一。名称C++表明,它是C的扩充版本。

    (2)C++源文件的拓展名

    ​ 具体使用什么拓展名取决于C++的实现,

    C++实现拓展名
    UnixC, cc, cxx, c
    GNU C++C, cc, cxx, cpp, c++
    Digital Marscpp, cxx
    Borland C++cpp
    Watcomcpp
    Microsoft Visual C++cpp, cxx, cc
    Metrowerks CodeWarriorcpp, cp, cc, cxx, c++

    (3)一个Cpp程序的基本结构

    #include 		//预处理编译指令#include
    int main(void)			//主函数,程序入口
    {						//函数体
    	using namespace std;		//编译指令
    	cout << "Come up and C++ me some time."; 
    	cout << endl;
    	cout << "You won't regret it!" << endl;
    	return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    ​ 为什么main()不能使用其他的名称?因为运行在C语言、C++程序时,通常从main()函数开始执行。因此,如果没有main(),程序将不完整,编译器将指出未定义main()函数。也存在一些例外情况,例如,在Windows编程中,可以编写一个动态链接库(DLL)模块,这是其他Windows程序可以使用的代码,但是DLL模块不是独立的程序,因此不需要main()

    ​ 在C++中,分号;标志了语句的结尾。因此,在C++中,回车的作用就和空格或制表符相同,也就是说在C++中,通常可以在能够使用回车的地方使用空格,既可以把语句放在几行之上,也可以把几条语句放在同一行上。

    (4)Cpp关键字

    asmdoifreturntypedef
    autodoubleinlineshorttypeld
    booldynamic_castintsignedtypename
    breakelselongsizeofunion
    caseenummutablestaticunsigned
    catchexplicitnamespacestatic_castusing
    charexportnewstructvirtual
    classexternoperatorswitchvoid
    constfalseprivatetemplatevolatile
    const_castfloatprotectedthiswhile
    continueforpublicthrowwhile
    defaultfriendregistertrue
    deletegotoreinterpret_casttry

    (5)C++运算符

    运算符描述示例结果
    +算术运算符 + + +3 + 25
    -算术运算符 − - 3 - 21
    *算术运算符 × \times ×3 * 412
    /算术运算符 / / /4 / 22
    =赋值运算符=a = 1a = 1
    %取模运算符 m o d mod mod10 % 31
    ++单目运算符++a=2;b=a++a=2;b=++aa=3;b=2a=3;b=3
    --单目运算符--a=2;b=a--a=2;b=--aa=1;b=2a=1;b=1
    sizeof单目运算符sizeofsizeof(int)4
    &&逻辑运算符a=1;b=2; a==1 && b==21
    ``逻辑运算符
    !逻辑运算符a=1;a!=10
    and逻辑运算符
    or逻辑运算符
    not逻辑运算符
    ^位运算符^异或a=1;b=2;a=a^b;b=a^b;a=a^b;交换ab的值
    .成员访问符.用于通过变量访问结构体成员,或访问类的成员struct book mybook; mybook.name访问book成员变量的name成员
    ->成员访问符->用于通过指针访问结构体成员,或访问类的成员
    &取地址运算符&,引用运算符int a=2; int* b=&ab代表了a变量在内存中的存放地址
    *解引用运算符*int a=2; int* b=&a; *b2
    new内存分配运算符int* pt = new int;为指针pt分配了一个int大小的空间
    delete内存分配运算符int* pt = new int; delete pt;回收了pt的内存空间
    ,逗号运算符int i, j;分隔声明的名称
    ?:三目运算符?:int a = 1 > 2? 1: 0;a的值为0

    ​ C++使用布尔常量值true、false而无需包含任何头文件,但是C语言需要包含stdbool.h后,才能够使用这两个布尔值常量。

    ​ C++标准提供了逻辑运算符的另一种表达方式,标识符and、or、not都是C++的保留关键字,但是它们不是C语言的保留关键字,若C语言需要使用这种方式则需要包括头文件iso646.h,C++不要求使用头文件。

  • 相关阅读:
    【RPA技术】UI分析器与可视化树:解决界面元素获取难题
    TypeScript定义
    数字通信和fpga概述——杜勇版本学习笔记
    华为机试真题 Java 实现【服务启动】
    策略模式(设计模式)
    购买nft 使用的token 代币有哪些
    Ambari界面介绍
    知识库文档处理
    【操作系统】安全管理/防火墙
    CarSim仿真快速入门(十七)—ADAS范围和跟踪传感器
  • 原文地址:https://blog.csdn.net/qq_44940689/article/details/126679811