C++ 简介、基本语法、数据类型、变量、常量

一、C++简介:

        

        C++是一种静态类型的、编译式的、通用的、大小写敏感的、不规则的编程语言。支持过程化编程、面向对象编程和泛型编程。C++是C的一个超集,任何合法的C程序都是合法的C++程序。

面向对象开发的四大特性:

◆ 封装(Encapsulation):封装是将数据和方法组合在一起,对外部隐藏实现细节,只公开对外提供的接口。提高安全性、可靠性和灵活性。

◆ 继承(Inheritance):继承是从已有类中派生出新类,新类具有已有类的属性和方法,并且可以扩展或修改这些属性和方法。提高代码的复用性和可扩展性。

◆ 多态(Polymorphism):多态是指同一种操作作用于不同的对象,可以有不同的解释和实现。它可以通过接口或继承实现,提高代码的灵活性和可读性。

◆ 抽象(Abstraction):抽象是从具体的实例中提取共同的特征,形成抽象类或接口,以便于代码的复用和扩展。抽象类和接口可以让程序员专注于高层次的设计和业务逻辑,而不必关注底层的实现细节。

二、C++基本语法:

对象:具有状态和行为。

类:定义为描述对象行为/状态的模版/蓝图。

方法:方法表示一种行为,在方法中写入逻辑、操作数据、执行的动作。类可以包含多个方法。

即时变量:每个对象都有其独特的即时变量。对象的状态是由即时变量的值创建的。

#include <iostream> //定义头文件

using namespace std; //命名空间

int main() //主函数,程序从这里开始执行

{

cout << "Hello World"; // 输出 Hello World

return 0;

}

C++中,分号是语句的结束符,即每个语句必须以分号结束。

C++标识符是用来标识变量、函数、类、模块、任何其他用户自定义项目的名称。标识符是以字母A~或a~z或下划线_开始,后面跟零个或多个字母、下划线和数字(0~9))。标识符内不允许出现标点字符。

C++关键字:

三字符组是用来标识另一个字符的三个字符序列,又称为三字符序列。三字符序列是以两个问号开头。C++标准允许把某些字符指定为三字符序列。常见的三字符序列:

三字符组

替换

??=

#

??/

\

??'

^

??(

[

??)

]

??!

|

??<

{

??>

}

??-

~

在C++中,空格用于描述空白符、制表符、换行符和注释。空格分隔语句的各个部分。

C++支持单行注释和多行注释://一般用于单行注释;/* .....*/一般用于多行注释。

三、C++数据类型:

C++基本数据类型:

类型

关键字

布尔型

bool

字符型

char

整型

int

浮点型

float

双浮点型

double

无类型

void

宽字符型

wchar_t

各种变量类型在内存中存储值需要占用的内存:

类型

范围

char

1 个字节

-128 到 127 或者 0 到 255

unsigned char

1 个字节

0 到 255

signed char

1 个字节

-128 到 127

int

4 个字节

-2147483648 到 2147483647

unsigned int

4 个字节

0 到 4294967295

signed int

4 个字节

-2147483648 到 2147483647

short int

2 个字节

-32768 到 32767

unsigned short int

2 个字节

0 到 65,535

signed short int

2 个字节

-32768 到 32767

long int

8 个字节

-9,223,372,036,854,775,808 到 9,223,372,036,854,775,807

signed long int

8 个字节

-9,223,372,036,854,775,808 到 9,223,372,036,854,775,807

unsigned long int

8 个字节

0 到 18,446,744,073,709,551,615

float

4 个字节

精度型占4个字节(32位)内存空间,+/- 3.4e +/- 38 (~7 个数字)

double

8 个字节

双精度型占8 个字节(64位)内存空间,+/- 1.7e +/- 308 (~15 个数字)

long long

8 个字节

双精度型占8 个字节(64位)内存空间,表示 -9,223,372,036,854,775,807 到 9,223,372,036,854,775,807 的范围

long double

16 个字节

长双精度型 16 个字节(128位)内存空间,可提供18-19位有效数字。

wchar_t

2 或 4 个字节

1 个宽字符

32位系统与64位系统的存储大小的差别:

四、C++变量类型:

C++基本变量类型:

类型

描述

bool

布尔类型,存储值 true 或 false,占用 1 个字节。

char

字符类型,用于存储 ASCII 字符,通常占用 1 个字节。

int

整数类型,通常用于存储普通整数,通常占用 4 个字节。

float

单精度浮点值,用于存储单精度浮点数。单精度是这样的格式,1 位符号,8 位指数,23 位小数,通常占用4个字节。

double

双精度浮点值,用于存储双精度浮点数。双精度是 1 位符号,11 位指数,52 位小数,通常占用 8 个字节。

void

表示类型的缺失。

wchar_t

宽字符类型,用于存储更大范围的字符,通常占用 2 个或 4 个字节。

五、C++变量作用域:

局部变量:在函数或一个代码块内部声明的变量。

形式参数:在函数参数的定义中声明的变量。

全局变量:在所有函数外部声明的变量。

局部作用域:在函数内部声明的变量具有局部作用域,局部变量只能在函数内部访问,在函数每次被调用时被创建,在函数执行完后被销毁。

全局作用域:在所有函数和代码块之外声明的变量具有全局作用域,全局变量可以被程序中的任何函数访问,在程序开始时被创建,在程序结束时被销毁。

块作用域:在代码块内部声明的变量具有块作用域,块作用域变量只能在代码块内部访问,在代码块每次被执行时被创建,在代码块执行完后被销毁。

类作用域:在类内部声明的变量具有类作用域,类作用域变量可以被类的所有成员函数访问。类作用域变量的生命周期与类的生命周期相同。

#include <iostream>

using namespace std;

int i = 3; // 全局变量声明

int main ()

{

int j = 10; // 局部变量声明

cout << j;

return 0;

}

#include <iostream>

class MClass {
public:
    static int class_var;  // 类作用域变量
};

int MClass::class_var = 30;

int main() {
    std::cout << "类变量: " << MClass::class_var << std::endl;
    return 0;
}

六、C++常量:

常量,又称字面量。常量是固定值。程序执行期间不会改变。

6.1、整数常量:

前缀指定基数:0x或0X表示十六进制,0表示八进制,不带前缀默认为十进制。整数常量可以带后缀,U代表无符号整数,L代表长整数。

6.2、浮点常量:

浮点常量有整数部分、小数点、小数部分和指数部分组成。可以用小数形式或者指数形式表示浮点常量。

6.3、布尔常量:

true、false。

6.4、字符常量:

字符常量是括在单引号中。

转义序列码:

转义序列

含义

\\

\ 字符

\'

' 字符

\"

" 字符

\?

? 字符

\a

警报铃声

\b

退格键

\f

换页符

\n

换行符

\r

回车

\t

水平制表符

\v

垂直制表符

\ooo

一到三位的八进制数

\xhh . . .

一个或多个数字的十六进制数

6.5、字符串常量:

字符串常量是括在双引号“”中。

常量的定义方式:#define、const关键字。常量定义为大写字母形式。

#define identifier value

const type variable = value;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/206143.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

win10 eclipse安装教程

前言&#xff1a;安装eclipse之前必须安装JDK&#xff0c;JDK是编译环境&#xff0c;eclipse是集成开发平台。 一、JDK的安装 Java Development Kit 简称 JDK (一). 官方下载地址&#xff1a; Java Archive Downloads - Java SE 8u211 and later (oracle.com) 找到&#xf…

Postman如何使用(一):导入导出和发送请求查看响应

一、Postman如何导入导出打包的应用 在Postman中导入导出我们的 测试数据包 和 工作环境 非常的方便&#xff1a; 导出数据包的方法如下&#xff1a; 如果你想学习自动化测试&#xff0c;我这边给你推荐一套视频&#xff0c;这个视频可以说是B站播放全网第一的自动化测试教程…

智能配电房环境监控系统

智能配电房环境监控系统是一种用于实时监测和控制配电房环境的系统。依托电易云-智慧电力物联网&#xff0c;通过集成应用物联网技术&#xff0c;实现对配电房内环境的全天候状态监视和智能控制。以下是智能配电房环境监控系统的主要功能&#xff1a; 环境数据实时监测&#xf…

笔记58:Encoder-Decoder 架构

本地笔记地址&#xff1a;D:\work_file\&#xff08;4&#xff09;DeepLearning_Learning\03_个人笔记\3.循环神经网络\第9章&#xff1a;动手学深度学习~现代循环神经网络 a a a a a a a a a

万字解析:十大排序(直接插入排序+希尔排序+选择排序+堆排序+冒泡排序+快速排序+归并排序+计数排序+基数排序+桶排序)

文章目录 十大排序排序算法复杂度及稳定性分析一、 排序的概念1.排序&#xff1a;2.稳定性&#xff1a;3.内部排序&#xff1a;4.外部排序&#xff1a; 二、插入排序1.直接插入排序2.希尔排序 三、选择排序1.直接选择排序方法一方法二直接插入排序和直接排序的区别 2.堆排序 四…

ROS teb_local_planner安装及使用

文章目录 前言一、TEB的下载与安装二、TEB的使用三、效果演示总结 前言 多机器人编队在狭窄环境中避障能力较差&#xff0c;领航机器人有时规划不出一条可达路径&#xff0c;故希望采用TEB算法来进行领航者机器人的局部路径规划。以提高机器人编队整体的避障能力。 一、TEB的下…

亚马逊2024版Listing打分标准大更新:权重规则调整,卖家们需关注!

亚马逊近期发布了关于“2024版Listing打分标准”的两篇文章&#xff0c;其中更新了Listing权重规则&#xff0c;引起了广大卖家的关注。 对于亚马逊卖家而言&#xff0c;打造产品Listing是产品上架前必须完成的重要任务&#xff0c;而想要成为爆款&#xff0c;则需要遵循亚马逊…

skywalking中gateway的拓扑图没有出现

背景&#xff1a; 刚开始的时候gateway没有出现&#xff0c;后来百度说添加插件的jar包&#xff0c; apm-spring-cloud-gateway-2.1.x-plugin-8.15.0.jar apm-spring-webflux-5.x-plugin-8.15.0.jar 然后解决了gateway节点出来了&#xff0c; 但是&#xff1a;拓扑图却是User指…

多篇论文介绍-可变形卷积

01 具有双层路由注意力的 YOLOv8 道路场景目标检测方法 01 摘要: 随着机动车的数量不断增加&#xff0c;道路交通环境变得更复杂&#xff0c;尤其是光照变化以及复杂背景都会干扰目标检测算法的准确性和精度&#xff0c;同时道路场景下多变形态的目标也会给检测任务造成干扰&am…

【LeetCode:2304. 网格中的最小路径代价 | dijkstra(迪杰斯特拉)】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

色彩(2)调试喜好——适用于camera tuning

#灵感# 色彩是一种易感知的图像属性。 目录 1、消费级的camera 产品&#xff0c;最关注的是“肤色”。 2、受欢迎的颜色风格&#xff1a; 3、颜色误差 4、颜色调整方法 5、影响颜色的模块 1、消费级的camera 产品&#xff0c;最关注的是“肤色”。 家用监控产品输出的图…

深度学习图像分类算法研究与实现 - 卷积神经网络图像分类 计算机竞赛

文章目录 0 前言1 常用的分类网络介绍1.1 CNN1.2 VGG1.3 GoogleNet 2 图像分类部分代码实现2.1 环境依赖2.2 需要导入的包2.3 参数设置(路径&#xff0c;图像尺寸&#xff0c;数据集分割比例)2.4 从preprocessedFolder读取图片并返回numpy格式(便于在神经网络中训练)2.5 数据预…