01__C++入门

一、C++的语法框架

        首先学习一门语言,我们需要了解语言的基本框架,这一小节,我们学习C++的历史应用,c和c++的区别和c++的标准

二、认识C++

1、C++的历史

所有的主流C++编译器都支持这个版本的C++(1998年的版本)。

2、C++的应用

        C++主要用在开发系统、算法核心、游戏引擎等对性能高度敏感的领域,除了性能出众,C++的高安全性也是首屈一指的。下面简单介绍C++在IT各开发领域所展露的强大生命力。

游戏、动画、浏览器、数据库、多媒体、编译系统、操作系统(和c混合写)、应用软件开发

        而走嵌入式QT方向(即软硬结合的):有上位机、服务软件上位机(挂号机,点菜机,收银机等),或者车载上位机等。

        总结来说就是:C++这种偏向应用软件开发的语法,语言更新迭代速度势必比面向过程系统开发的C语法速度快多了(应用层互联网开发相比之下拿高工资会比较累当然这里指的是一种现象,并不是100%的常见现象,看公司文化而定)

3、C和C++的区别

1、和C相比(C++是C的扩展)

1:C++是在C语言的基础上扩展而来,所以C++ 完全兼容C语言,可以在C++程序中写C语言的代码。

2:c++引入了名字空间,可以使定义的变量名更多(提升变量符号的复用性)。

3:c语言面向过程(面向函数封装和函数调用的顺序过程),c++面向对象(类(结构体)的变量)。

4:c++使用了,能够继承,继承使得定义相似的类时能够直接从上一层得到一些方法或变量来进行直接使用。

4、C++的标准C++中文参考手册

c++后面还有c++23(2023草案)

补充C的标准:c89(c90) 、c99

系统层的更新迭代肯定比应用层更新迭代慢,所以对应的编程设计语言相对比较慢。

5、第一个C++程序(hello world)

#include <iostream>  // input  output  C++标准头文件 cout  cin 相当于下面c的头文件
#include <stdio.h>   //  printf scanfint main()
{//std::cout  表示 标准输出流 --屏幕终端   //std::endl  代表换行std::cout <<"hello world" <<std::endl;return 0;
}

编译的时候使用g++编译器

g++ hello.cpp  -o hello
./hello //运行效果
hello world

注意点:在C++中能否写C的代码?

 答案:当然是可以的

那怎么操作呢?

这就要用到C++中的extern "C"语法引入

完整例子:

#ifdef __cplusplus  //为了让下面的c代码只能在.cpp文件中才显示//这是在c++文件中写c语言的最标准的写法
extern "C"         // extern "C"是c++里的一个语法
{#include <stdio.h>void Fun();void Fun(){printf("hello world!\n");}
}#endif
// 上面在c++中引用c代码的例子现实中是很少用到的#include <iostream>using namespace std;int main()
{//Fun();return 0;
}

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

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

相关文章

2024 CKA题库+详尽解析| 15、备份还原Etcd

目录 免费获取题库配套 CKA_v1.31_模拟系统 15、 备份还原Etcd 题目&#xff1a; 开始操作: 1&#xff09;、切换集群 2&#xff09;、登录master并提权 3&#xff09;、备份Etcd现有数据 4&#xff09;、验证备份数据快照 5&#xff09;、查看节点和Pod状态 6&am…

Flotherm许可的并发用户数限制

在电子产品热设计领域&#xff0c;Flotherm软件以其卓越的性能和精确的仿真能力而受到广大用户的青睐。然而&#xff0c;在使用Flotherm软件时&#xff0c;了解其许可的并发用户数限制对于优化资源配置和提升工作效率至关重要。本文将详细介绍Flotherm软件许可的并发用户数限制…

读取宝塔方法,查找容别名存放位置

可以查到对应方法 根据参数名可知 查找到 得到位置

【1】跨越技术栈鸿沟:字节跳动开源TRAE AI编程IDE的实战体验

2024年初&#xff0c;人工智能编程工具领域发生了一次静默的变革。当字节跳动宣布退出其TRAE项目&#xff08;一款融合大型语言模型能力的云端AI编程IDE&#xff09;时&#xff0c;技术社区曾短暂叹息。然而这一退场并非终点——通过开源社区的接力&#xff0c;TRAE在WayToAGI等…

git连接本地仓库以及gitee

参考:gitee创建新仓库并上传代码_gitee新建仓库导入代码-CSDN博客 git初始化以及添加git分支 在idea查看master主分支 报错 原因gitee推送更新失败问题记录&#xff1a;remote: error: hook declined to update refs/heads/master-CSDN博客 取消邮箱暴露

pocketflow库实现guardrail

目录 代码代码解释1. 系统架构2. 核心组件详解2.1 LLM调用函数2.2 UserInputNode&#xff08;用户输入节点&#xff09;2.3 GuardrailNode&#xff08;安全防护节点&#xff09;2.4 LLMNode&#xff08;LLM处理节点&#xff09; 3. 流程控制机制 示例运行 代码 from pocketflo…

Fetch API 使用详解:Bearer Token 与 localStorage 实践

Fetch API&#xff1a;现代浏览器内置的用于发送 HTTP 请求的 API&#xff0c;Bearer Token&#xff1a;一种基于令牌的身份验证方案&#xff0c;常用于 JWT 认证&#xff0c;localStorage&#xff1a;浏览器提供的持久化存储方案&#xff0c;用于在客户端存储数据。 token是我…

Netty自定义协议解析

目录 自定义协议设计 实现消息解码器 实现消息编码器 自定义消息对象 配置ChannelPipeline Netty提供了强大的编解码器抽象基类,这些基类能够帮助开发者快速实现自定义协议的解析。 自定义协议设计 在实现自定义协议解析之前,需要明确协议的具体格式。例如,一个简单的…

驭码 CodeRider 2.0 产品体验:智能研发的革新之旅

驭码 CodeRider 2.0 产品体验&#xff1a;智能研发的革新之旅 在当今快速发展的软件开发领域&#xff0c;研发效率与质量始终是开发者和企业关注的核心。面对开发协作流程繁琐、代码生成补全不准、代码审核低效、知识协同困难以及部署成本与灵活性难以平衡等问题&#xff0c;…

NLP学习路线图(二十六):自注意力机制

一、为何需要你?序列建模的困境 在你出现之前,循环神经网络(RNN)及其变种LSTM、GRU是处理序列数据(如文本、语音、时间序列)的主流工具。它们按顺序逐个处理输入元素,将历史信息压缩在一个隐藏状态向量中传递。 瓶颈显现: 长程依赖遗忘: 随着序列增长,早期信息在传递…

【渲染】Unity-分析URP的延迟渲染-DeferredShading

我是一名资深游戏开发&#xff0c;小时候喜欢看十万个为什么 介绍 本文旨在搞清楚延迟渲染在unity下如何实现的&#xff0c;为自己写延迟渲染打一个基础&#xff0c;打开从知到行的大门延迟渲染 输出物体表面信息(rt1, rt2, rt3, …) 着色(rt1, rt2, rt3, …)研究完感觉核心…

华为OD机考- 简单的自动曝光/平均像素

import java.util.Arrays; import java.util.Scanner;public class DemoTest4 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint[] arr Array…

java 乐观锁的实现和注意细节

文章目录 1. 前言乐观锁 vs. 悲观锁&#xff1a;基本概念对比使用场景及优势简述 2. 基于版本号的乐观锁实现代码示例注意事项 3. 基于CAS机制的乐观锁实现核心思想代码示例关键点说明 4. 框架中的乐观锁实践MyBatis中基于版本号的乐观锁实现示例代码 JPA&#xff08;Hibernate…

河北对口计算机高考C#笔记(2026高考适用)---持续更新~~~~

C#笔记 C#发展史 1998年,C#发布第一个版本。2002年,visual studio开发环境推出C#的特点 1.语法简洁,不允许直接操作内存,去掉了指针操作 2.彻底面向对象设计。 3.与Web紧密结合。 4.强大的安全机制,语法错误提示,引入垃圾回收器机制。 5.兼容性。 6.完善的错误,异常处理…

C# dll版本冲突解决方案

随着项目功能逐渐增加&#xff0c;引入三方库数量也会增多。不可避免遇到库的间接引用dll版本冲突&#xff0c;如System.Memory.dll、System.Buffer.dll等。编译会报警&#xff0c;运行可能偶发异常。 可使用ILMerge工具合并动态库&#xff0c;将一个库的多个dll合并为一个dll。…

深度解析:etcd 在 Milvus 向量数据库中的关键作用

目录 &#x1f680; 深度解析&#xff1a;etcd 在 Milvus 向量数据库中的关键作用 &#x1f4a1; 什么是 etcd&#xff1f; &#x1f9e0; Milvus 架构简介 &#x1f4e6; etcd 在 Milvus 中的核心作用 &#x1f527; 实际工作流程示意 ⚠️ 如果 etcd 出现问题会怎样&am…

随机访问介质访问控制:网络中的“自由竞争”艺术

想象一场自由辩论赛——任何人随时可以发言&#xff0c;但可能多人同时开口导致混乱。这正是计算机网络中随机访问协议的核心挑战&#xff1a;如何让多个设备在共享信道中高效竞争&#xff1f;本文将深入解析五大随机访问技术及其智慧。 一、核心思想&#xff1a;自由竞争 冲突…

设计模式作业

package sdau;public class man {public static void main(String[] args) {show(new Cat()); // 以 Cat 对象调用 show 方法show(new Dog()); // 以 Dog 对象调用 show 方法Animal a new Cat(); // 向上转型 a.eat(); // 调用的是 Cat 的 eatCat c (Cat)a…

Kaspa Wasm SDK

文章目录 1. 简要2. github地址 1. 简要 kaspa wallet SDK&#xff0c;在官方WASM基础上封装了应用层的方法&#xff0c;简便了WASM的初始化及调用。 核心功能包括如下&#xff1a; 账户地址生成及管理Kaspa Api 和 Kasplex Api的封装kaspa结点RPC 封装P2SH的各个场景script封…

ROS mapserver制作静态地图

ROS mapserver制作静态地图 静态地图构建 1、获取一个PNG地图&#xff0c;二值化 2、基于PNG地图&#xff0c;生成PGM地图&#xff0c;可以通过一些网站在线生成&#xff0c;例如Convertio 文件配置 1、将文件放置于/package/map路径下。 2、编写yaml文件&#xff0c;如下…