Linux系统下imx6ull QT编程—— C++基础(一)

news/2024/11/9 3:10:03/

Linux QT编程


文章目录

  • Linux QT编程
  • 前言
  • 一、 C++的输入输出方式
    • 1.cout语法形式
    • 2.cin语法形式
    • 3.C++之命名空间 namespace


前言

学习 C++的面向对象编程,对学习 Qt 有很大的帮助

一、 C++的输入输出方式

在这里插入图片描述
在这里插入图片描述
效率上,肯定是 C 语言的 scanf 和 printf 的效率高,但是没有 C++中的 cin 和 cout 使用方便。

1.cout语法形式

cout<<x<<endl;
cout<<x<<y; // endl 可流省略,只是一个换行的效果

x 可以是任意数据类型,甚至可以写成一个表达式,这比 C 语言需要指定数据类型方便多了,endl 指的是换行符,与 C 语言的“\n”效果一样。

2.cin语法形式

cin>>x;
cin>>x>>y;

x 可以是任意数据类型。

3.C++之命名空间 namespace

我们已经使用过命名空间,如using namespace std;
要注意第 1 行,不能写成 iostream.h,有.h 的是非标准的输入输出流,c 的标准库。无.h 的是标准输入输出流就要用命名空间。
using 是编译指令,声明当前命名空间的关键词。可以从字面上理解它的意思,using 翻译成使用。这样可以理解成使用命名空间 std。因为 cin 和 cout 都是属于 std 命名空间下的东西,所以使用时必须加上 using namespace std;这句话。cin 和 cout 可以写 std::cin 和 std::cout,“::”表示作用域,cin 和 cout 是属于 std 命名空间下的东西,这里可以理解成 std 的 cin 和 std 的 cout

为什么要使用命名空间?
有些名字容易冲突,所以会使用命名空间的方式进行区分,具体来说就是加个前缀。
比如C++ 标准库里面定义了 vector 容器,您自己也写了个 vector 类,这样名字就冲突了。于是标准库里的名字都加上 std:: 的前缀,您必须用 std::vector 来引用。同理,您自己的类也可以加个自定义的前缀。但是经常写全名会很繁琐,所以在没有冲突的情况下您可以偷懒,写一句using namespace std;,接下去的代码就可以不用写前缀直接写 vector 了。

下面介绍自定义的命名空间和使用自定义的命名空间
新建一个目录 02_namespace_example,然后在 02_namespace_example 里新建一个02_namespace_example.cpp 文件
在这里插入图片描述
然后输入下面这段代码

#include <iostream>using namespace std;namespace A{int x = 1;void fun() {cout<<"A namespace"<<endl;}}using namespace A;int main(){fun();A::x = 3;cout<<A::x<<endl;A::fun();return 0;}

第 4 行,自定义了命名空间 A,里面定义了一个变量 x,并将 x 赋值为 1;定义了一个函数fun(),并在 fun()加了输出打印语句 cout<<“A namespace”<<endl;。
第 11 行,声明使用命名空间 A。
第 14 行,在第 11 行声明了命名空间 A 后,才能直接使用 fun();否则要写成A::fun();
第 15 行,将 A 命名空间下的 x 重新赋值为 3。
第 16 行,打印出 A 命名空间下的 x 的值。
第 17 行,调用 A 命名空间下的 fun()。

然后编译执行
在这里插入图片描述
可以看到fun()打印出字符
然后cout << A::x<<endl打印出3
然后调用A::fun()打印出字符


http://www.ppmy.cn/news/109933.html

相关文章

JVM学习笔记(中)

1、垃圾回收算法 标记清除法 特点&#xff1a; 速度较快会产生内存碎片 注意&#xff1a;这里的清除并不是真正意义上的清除&#xff0c;即每个字节都清0&#xff0c;而是记录一下被清除的对象的起始和结束的地址&#xff0c;当下一次分配给一个新对象时&#xff0c;新对象…

《MYSQL必知必会》读书笔记1

目录 行 主键 MYSQL工具 使用MYSQL 连接 检索数据 检索&#xff08;SELECT&#xff09; 限制结果&#xff08;LIMIT&#xff09; 排序检索&#xff08;ORDER BY&#xff09; 过滤数据&#xff08;WHERE&#xff09; 过滤数据&#xff08;AND、OR&#xff09; 通配符…

LeetCode - 10 正则表达式匹配

目录 题目来源 题目描述 示例 提示 题目解析 算法源码 题目来源 10. 正则表达式匹配 - 力扣&#xff08;LeetCode&#xff09; 题目描述 给你一个字符串 s 和一个字符规律 p&#xff0c;请你来实现一个支持 . 和 * 的正则表达式匹配。 . 匹配任意单个字符 * 匹配零个或…

开源SCRM营销平台MarketGo-账号管理

一、概述 企业在经营的过程中&#xff0c;因为业务、税收等各种因素的需要在各地成立分公司&#xff0c;这样针对公司来说管理成本&#xff0c;运营成本&#xff0c;营销成本都会提高&#xff0c;并且沟通的效率也会变低。 在用户营销的场景中&#xff0c;MarketGo在SCRM做了…

2023年数学建模国赛:线性回归:从原理到实践

2023年9月数学建模国赛期间提供ABCDE题思路加Matlab代码,专栏链接(赛前一个月恢复源码199,欢迎大家订阅):http://t.csdn.cn/Um9Zd 目录 1. 线性回归的基本原理 2. 最小二乘法 3. 线性回归的评估指标 4. 线性回归的实现 —— 使用 MATLAB 5. 实际案例分析 5.1 数据预处理…

2023年数学建模:旅行商问题:数学建模与MATLAB实现

2023年9月数学建模国赛期间提供ABCDE题思路加Matlab代码,专栏链接(赛前一个月恢复源码199,欢迎大家订阅):http://t.csdn.cn/Um9Zd 目录 引言 问题定义 解决策略 MATLAB实现 数学建模案例 案例一&#xff1a;旅行商计划行程 案例二&#xff1a;物流配送 案例三&#xf…

【马蹄集】第十三周作业

第十三周作业 目录 MT2137 附庸的附庸MT2138 采蜜MT2139 暧昧团 MT2137 附庸的附庸 难度&#xff1a;黄金    时间限制&#xff1a;1秒    占用内存&#xff1a;128M 题目描述 蒙德城的旧贵族们存在着附庸的关系。欧洲有一位伟人说过&#xff0c;我的附庸的附庸不是我的附庸…

python如何解决js逆向混淆?

JavaScript混淆是一种保护网站安全的技术&#xff0c;混淆可将代码进行多种变形和加密&#xff0c;使得 JavaScript 代码变得难以阅读和理解。逆向混淆是混淆中的一种方式。通过逆向混淆&#xff0c;混淆的代码更难被攻击者分析和了解混淆的含义。Python 是一种强大的编程语言&…