
c++
文章平均质量分 91
半宛清愁
枯藤长出枝桠,原来时光已翩然轻擦。
展开
-
qt 判断网络链接
前言在Qt中判断网络是否连接有两种方式,其中一种是网络连接但是不一定能上网,可能只是连接了网线或者Wi-Fi,但不一定能够上互联网。另一种判断该网络是否可以连接互联网,两种情况的判别方式有所区别。正文第一种:只需要判断网络是否有连接,不一定能上网这个很简单,直接通过Qt的类QNetworkConfigurationManager自带的函数就可以判断(该方法也适用于Android平台...转载 2019-06-27 19:33:26 · 2387 阅读 · 0 评论 -
c++之数字
C++ 数字通常,当我们需要用到数字时,我们会使用原始的数据类型,如 int、short、long、float 和 double 等等。这些用于数字的数据类型,其可能的值和数值范围,我们已经在 C++ 数据类型一章中讨论过。C++ 定义数字我们已经在之前章节的各种实例中定义过数字。下面是一个 C++ 中定义各种类型数字的综合实例:实例#include <iostream>using n...原创 2018-02-08 17:25:54 · 3517 阅读 · 0 评论 -
c++之函数
C++ 函数函数是一组一起执行一个任务的语句。每个 C++ 程序都至少有一个函数,即主函数 main() ,所有简单的程序都可以定义其他额外的函数。您可以把代码划分到不同的函数中。如何划分代码到不同的函数中是由您来决定的,但在逻辑上,划分通常是根据每个函数执行一个特定的任务来进行的。函数声明告诉编译器函数的名称、返回类型和参数。函数定义提供了函数的实际主体。C++ 标准库提供了大量的程序可以调用的...原创 2018-02-08 17:22:18 · 3354 阅读 · 0 评论 -
c++之判断
C++ 判断判断结构要求程序员指定一个或多个要评估或测试的条件,以及条件为真时要执行的语句(必需的)和条件为假时要执行的语句(可选的)。下面是大多数编程语言中典型的判断结构的一般形式:判断语句C++ 编程语言提供了以下类型的判断语句。点击链接查看每个语句的细节。语句描述if 语句一个 if 语句 由一个布尔表达式后跟一个或多个语句组成。if...else 语句一个 if 语句 后可跟一个可选的 e...原创 2018-02-08 17:17:08 · 3466 阅读 · 0 评论 -
c++之循环
C++ 循环有的时候,可能需要多次执行同一块代码。一般情况下,语句是顺序执行的:函数中的第一个语句先执行,接着是第二个语句,依此类推。编程语言提供了允许更为复杂的执行路径的多种控制结构。循环语句允许我们多次执行一个语句或语句组,下面是大多数编程语言中循环语句的一般形式:循环类型C++ 编程语言提供了以下几种循环类型。点击链接查看每个类型的细节。循环类型描述while 循环当给定条件为真时,重复语句...原创 2018-02-08 17:16:17 · 3542 阅读 · 0 评论 -
c++之运算符
C++ 运算符运算符是一种告诉编译器执行特定的数学或逻辑操作的符号。C++ 内置了丰富的运算符,并提供了以下类型的运算符:算术运算符关系运算符逻辑运算符位运算符赋值运算符杂项运算符本章将逐一介绍算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符和其他运算符。算术运算符下表显示了 C++ 支持的算术运算符。假设变量 A 的值为 10,变量 B 的值为 20,则:运算符描述实例+把两个操作数相加...原创 2018-02-08 17:14:01 · 3385 阅读 · 0 评论 -
c++之存储类
C++ 存储类存储类定义 C++ 程序中变量/函数的范围(可见性)和生命周期。这些说明符放置在它们所修饰的类型之前。下面列出 C++ 程序中可用的存储类:autoregisterstaticexternmutablethread_local (C++11)从 C++ 11 开始,auto 关键字不再是 C++ 存储类说明符,且 register 关键字被弃用。auto 存储类自 C++ 11 以来...原创 2018-02-08 16:39:37 · 3609 阅读 · 0 评论 -
c++之修饰符类型
C++ 修饰符类型C++ 允许在 char、int 和 double 数据类型前放置修饰符。修饰符用于改变基本类型的含义,所以它更能满足各种情境的需求。下面列出了数据类型修饰符:signedunsignedlongshort修饰符 signed、unsigned、long 和 short 可应用于整型,signed 和 unsigned 可应用于字符型,long 可应用于双精度型。修饰符 sign...原创 2018-02-08 16:00:05 · 4057 阅读 · 0 评论 -
c++之常量
C++ 常量常量是固定值,在程序执行期间不会改变。这些固定的值,又叫做字面量。常量可以是任何的基本数据类型,可分为整型数字、浮点数字、字符、字符串和布尔值。常量就像是常规的变量,只不过常量的值在定义后不能进行修改。整数常量整数常量可以是十进制、八进制或十六进制的常量。前缀指定基数:0x 或 0X 表示十六进制,0 表示八进制,不带前缀则默认表示十进制。整数常量也可以带一个后缀,后缀是 U 和 L ...原创 2018-02-08 15:54:36 · 3473 阅读 · 0 评论 -
c++之数组
C++ 数组C++ 支持数组数据结构,它可以存储一个固定大小的相同类型元素的顺序集合。数组是用来存储一系列数据,但它往往被认为是一系列相同类型的变量。数组的声明并不是声明一个个单独的变量,比如 number0、number1、...、number99,而是声明一个数组变量,比如 numbers,然后使用 numbers[0]、numbers[1]、...、numbers[99] 来代表一个个单独的...原创 2018-02-08 17:30:20 · 8495 阅读 · 0 评论 -
c++之字符串
C++ 字符串C++ 提供了以下两种类型的字符串表示形式:C 风格字符串C++ 引入的 string 类类型C 风格字符串C 风格的字符串起源于 C 语言,并在 C++ 中继续得到支持。字符串实际上是使用 null 字符 '\0' 终止的一维字符数组。因此,一个以 null 结尾的字符串,包含了组成字符串的字符。下面的声明和初始化创建了一个 "Hello" 字符串。由于在数组的末尾存储了空字符,所...原创 2018-02-08 17:39:04 · 4154 阅读 · 0 评论 -
c++之指针
C++ 指针学习 C++ 的指针既简单又有趣。通过指针,可以简化一些 C++ 编程任务的执行,还有一些任务,如动态内存分配,没有指针是无法执行的。所以,想要成为一名优秀的 C++ 程序员,学习指针是很有必要的。正如您所知道的,每一个变量都有一个内存位置,每一个内存位置都定义了可使用连字号(&)运算符访问的地址,它表示了在内存中的一个地址。请看下面的实例,它将输出定义的变量地址:实例#inc...原创 2018-02-08 17:43:06 · 3373 阅读 · 0 评论 -
qt delete使用
在C++中学习过程中,我们都知道:delete 和 new 必须 配对使用(一 一对应):delete少了,则内存泄露,多了麻烦更大。Qt作为C++的库,显然是不会违背C++的前述原则的。可是:在Qt中,我们很多时候都疯狂地用new,却很少用delete,缺少的 delete 去哪儿了?!Qt半自动的内存管理在Qt中,以下情况下你new出的对象你可以不用 亲自去delete (但你...原创 2019-04-05 15:57:30 · 4134 阅读 · 0 评论 -
Qt 应用程序重启
重启,也就是退出当前进程,启动一个新的进程。于是,先看程序如何退出退出Qt程序的一般结构如下:int main(int argc, char *argv[]){ QApplication a(argc, argv); MainWindow w; w.show(); return a.exec();}最后一句启动了主线程的事件循环。而要退出程序...原创 2019-04-05 15:27:34 · 11266 阅读 · 2 评论 -
c++之继承
C++ 继承面向对象程序设计中最重要的一个概念是继承。继承允许我们依据另一个类来定义一个类,这使得创建和维护一个应用程序变得更容易。这样做,也达到了重用代码功能和提高执行时间的效果。当创建一个类时,您不需要重新编写新的数据成员和成员函数,只需指定新建的类继承了一个已有的类的成员即可。这个已有的类称为基类,新建的类称为派生类。继承代表了 is a 关系。例如,哺乳动物是动物,狗是哺乳动物,因此,狗是...原创 2018-02-08 18:17:10 · 3359 阅读 · 0 评论 -
c++之类&对象
C++ 类 & 对象C++ 在 C 语言的基础上增加了面向对象编程,C++ 支持面向对象程序设计。类是 C++ 的核心特性,通常被称为用户定义的类型。类用于指定对象的形式,它包含了数据表示法和用于处理数据的方法。类中的数据和方法称为类的成员。函数在一个类中被称为类的成员。C++ 类定义定义一个类,本质上是定义一个数据类型的蓝图。这实际上并没有定义任何数据,但它定义了类的名称意味着什么,也就...原创 2018-02-08 18:10:02 · 3478 阅读 · 0 评论 -
c++之数据结构
C++ 数据结构C/C++ 数组允许定义可存储相同类型数据项的变量,但是结构是 C++ 中另一种用户自定义的可用的数据类型,它允许您存储不同类型的数据项。结构用于表示一条记录,假设您想要跟踪图书馆中书本的动态,您可能需要跟踪每本书的下列属性:Title :标题Author :作者Subject :类目Book ID :书的 ID定义结构为了定义结构,您必须使用 struct 语句。struct 语...原创 2018-02-08 18:02:13 · 20206 阅读 · 0 评论 -
c++之输入输出
C++ 基本的输入输出C++ 标准库提供了一组丰富的输入/输出功能,我们将在后续的章节进行介绍。本章将讨论 C++ 编程中最基本和最常见的 I/O 操作。C++ 的 I/O 发生在流中,流是字节序列。如果字节流是从设备(如键盘、磁盘驱动器、网络连接等)流向内存,这叫做输入操作。如果字节流是从内存流向设备(如显示屏、打印机、磁盘驱动器、网络连接等),这叫做输出操作。I/O 库头文件下列的头文件在 C...原创 2018-02-08 17:55:01 · 3429 阅读 · 0 评论 -
c++之日期时间
C++ 日期 & 时间C++ 标准库没有提供所谓的日期类型。C++ 继承了 C 语言用于日期和时间操作的结构和函数。为了使用日期和时间相关的函数和结构,需要在 C++ 程序中引用 <ctime> 头文件。有四个与时间相关的类型:clock_t、time_t、size_t 和 tm。类型 clock_t、size_t 和 time_t 能够把系统时间和日期表示为某种整数。结构类型...原创 2018-02-08 17:51:16 · 3422 阅读 · 0 评论 -
c++之引用
C++ 引用引用变量是一个别名,也就是说,它是某个已存在变量的另一个名字。一旦把引用初始化为某个变量,就可以使用该引用名称或变量名称来指向变量。C++ 引用 vs 指针引用很容易与指针混淆,它们之间有三个主要的不同:不存在空引用。引用必须连接到一块合法的内存。一旦引用被初始化为一个对象,就不能被指向到另一个对象。指针可以在任何时候指向到另一个对象。引用必须在创建时被初始化。指针可以在任何时间被初始...原创 2018-02-08 17:48:09 · 3424 阅读 · 0 评论 -
c++之变量作用域
C++ 变量作用域作用域是程序的一个区域,一般来说有三个地方可以定义变量:在函数或一个代码块内部声明的变量,称为局部变量。在函数参数的定义中声明的变量,称为形式参数。在所有函数外部声明的变量,称为全局变量。我们将在后续的章节中学习什么是函数和参数。本章我们先来讲解声明是局部变量和全局变量。局部变量在函数或一个代码块内部声明的变量,称为局部变量。它们只能被函数内部或者代码块内部的语句使用。下面的实例...原创 2018-02-08 15:47:12 · 3324 阅读 · 0 评论 -
c++之变量类型
C++ 变量类型变量其实只不过是程序可操作的存储区的名称。C++ 中每个变量都有指定的类型,类型决定了变量存储的大小和布局,该范围内的值都可以存储在内存中,运算符可应用于变量上。变量的名称可以由字母、数字和下划线字符组成。它必须以字母或下划线开头。大写字母和小写字母是不同的,因为 C++ 是大小写敏感的。基于前一章讲解的基本类型,有以下几种基本的变量类型,将在下一章中进行讲解:类型描述bool存储...原创 2018-02-08 15:29:58 · 3507 阅读 · 0 评论 -
c++之数据类型
C++ 数据类型使用编程语言进行编程时,需要用到各种变量来存储各种信息。变量保留的是它所存储的值的内存位置。这意味着,当您创建一个变量时,就会在内存中保留一些空间。您可能需要存储各种数据类型(比如字符型、宽字符型、整型、浮点型、双浮点型、布尔型等)的信息,操作系统会根据变量的数据类型,来分配内存和决定在保留内存中存储什么。基本的内置类型C++ 为程序员提供了种类丰富的内置数据类型和用户自定义的数据...原创 2018-02-08 15:21:00 · 3505 阅读 · 0 评论 -
c++之命名空间
C++ 命名空间假设这样一种情况,当一个班上有两个名叫 Zara 的学生时,为了明确区分它们,我们在使用名字之外,不得不使用一些额外的信息,比如他们的家庭住址,或者他们父母的名字等等。同样的情况也出现在 C++ 应用程序中。例如,您可能会写一个名为 xyz() 的函数,在另一个可用的库中也存在一个相同的函数 xyz()。这样,编译器就无法判断您所使用的是哪一个 xyz() 函数。因此,引入了命名空...原创 2018-02-09 11:07:07 · 3339 阅读 · 0 评论 -
c++之动态内存
C++ 动态内存了解动态内存在 C++ 中是如何工作的是成为一名合格的 C++ 程序员必不可少的。C++ 程序中的内存分为两个部分:栈:在函数内部声明的所有变量都将占用栈内存。堆:这是程序中未使用的内存,在程序运行时可用于动态分配内存。很多时候,您无法提前预知需要多少内存来存储某个定义变量中的特定信息,所需内存的大小需要在运行时才能确定。在 C++ 中,您可以使用特殊的运算符为给定类型的变量在运行...原创 2018-02-09 11:01:36 · 3401 阅读 · 0 评论 -
c++之异常处理
C++ 异常处理异常是程序在执行期间产生的问题。C++ 异常是指在程序运行时发生的特殊情况,比如尝试除以零的操作。异常提供了一种转移程序控制权的方式。C++ 异常处理涉及到三个关键字:try、catch、throw。throw: 当问题出现时,程序会抛出一个异常。这是通过使用 throw 关键字来完成的。catch: 在您想要处理问题的地方,通过异常处理程序捕获异常。catch 关键字用于捕获异常...原创 2018-02-09 10:50:19 · 3468 阅读 · 0 评论 -
c++之文件和流
C++ 文件和流到目前为止,我们已经使用了 iostream 标准库,它提供了 cin 和 cout 方法分别用于从标准输入读取流和向标准输出写入流。本教程介绍如何从文件读取流和向文件写入流。这就需要用到 C++ 中另一个标准库 fstream,它定义了三个新的数据类型:数据类型描述ofstream该数据类型表示输出文件流,用于创建文件并向文件写入信息。ifstream该数据类型表示输入文件流,用...原创 2018-02-09 10:44:12 · 3525 阅读 · 0 评论 -
c++之接口
C++ 接口(抽象类)接口描述了类的行为和功能,而不需要完成类的特定实现。C++ 接口是使用抽象类来实现的,抽象类与数据抽象互不混淆,数据抽象是一个把实现细节与相关的数据分离开的概念。如果类中至少有一个函数被声明为纯虚函数,则这个类就是抽象类。纯虚函数是通过在声明中使用 "= 0" 来指定的,如下所示:class Box{ public: // 纯虚函数 virtual d...原创 2018-02-09 10:36:13 · 5691 阅读 · 0 评论 -
c++之数据封装
C++ 数据封装所有的 C++ 程序都有以下两个基本要素:程序语句(代码):这是程序中执行动作的部分,它们被称为函数。程序数据:数据是程序的信息,会受到程序函数的影响。封装是面向对象编程中的把数据和操作数据的函数绑定在一起的一个概念,这样能避免受到外界的干扰和误用,从而确保了安全。数据封装引申出了另一个重要的 OOP 概念,即数据隐藏。数据封装是一种把数据和操作数据的函数捆绑在一起的机制,数据抽象...原创 2018-02-09 10:30:01 · 3507 阅读 · 0 评论 -
c++之数据抽象
C++ 数据抽象数据抽象是指,只向外界提供关键信息,并隐藏其后台的实现细节,即只表现必要的信息而不呈现细节。数据抽象是一种依赖于接口和实现分离的编程(设计)技术。让我们举一个现实生活中的真实例子,比如一台电视机,您可以打开和关闭、切换频道、调整音量、添加外部组件(如喇叭、录像机、DVD 播放器),但是您不知道它的内部实现细节,也就是说,您并不知道它是如何通过缆线接收信号,如何转换信号,并最终显示在...原创 2018-02-09 10:26:46 · 3417 阅读 · 0 评论 -
c++之多态
C++ 多态多态按字面的意思就是多种形态。当类之间存在层次结构,并且类之间是通过继承关联时,就会用到多态。C++ 多态意味着调用成员函数时,会根据调用函数的对象的类型来执行不同的函数。下面的实例中,基类 Shape 被派生为两个类,如下所示:实例#include <iostream>using namespace std; class Shape { protected: ...原创 2018-02-09 10:21:05 · 3431 阅读 · 0 评论 -
c++之模板
C++ 模板模板是泛型编程的基础,泛型编程即以一种独立于任何特定类型的方式编写代码。模板是创建泛型类或函数的蓝图或公式。库容器,比如迭代器和算法,都是泛型编程的例子,它们都使用了模板的概念。每个容器都有一个单一的定义,比如 向量,我们可以定义许多不同类型的向量,比如 vector <int> 或 vector <string>。您可以使用模板来定义函数和类,接下来让我们一起...原创 2018-02-09 11:13:09 · 3395 阅读 · 0 评论 -
c++之预处理器
C++ 预处理器预处理器是一些指令,指示编译器在实际编译之前所需完成的预处理。所有的预处理器指令都是以井号(#)开头,只有空格字符可以出现在预处理指令之前。预处理指令不是 C++ 语句,所以它们不会以分号(;)结尾。我们已经看到,之前所有的实例中都有 #include 指令。这个宏用于把头文件包含到源文件中。C++ 还支持很多预处理指令,比如 #include、#define、#if、#else、...原创 2018-02-09 11:20:42 · 3401 阅读 · 0 评论 -
c++之信号处理
C++ 信号处理信号是由操作系统传给进程的中断,会提早终止一个程序。在 UNIX、LINUX、Mac OS X 或 Windows 系统上,可以通过按 Ctrl+C 产生中断。有些信号不能被程序捕获,但是下表所列信号可以在程序中捕获,并可以基于信号采取适当的动作。这些信号是定义在 C++ 头文件 <csignal> 中。信号描述SIGABRT程序的异常终止,如调用 abort。SIGF...原创 2018-02-09 11:24:46 · 4239 阅读 · 0 评论 -
c++之注释
C++ 注释程序的注释是解释性语句,您可以在 C++ 代码中包含注释,这将提高源代码的可读性。所有的编程语言都允许某种形式的注释。C++ 支持单行注释和多行注释。注释中的所有字符会被 C++ 编译器忽略。C++ 注释以 /* 开始,以 */ 终止。例如:/* 这是注释 */ /* C++ 注释也可以 * 跨行 */注释也能以 // 开始,直到行末为止。例如:实例#include <iostr...原创 2018-02-08 15:12:04 · 3843 阅读 · 0 评论 -
c++之基本语法
C++ 基本语法C++ 程序可以定义为对象的集合,这些对象通过调用彼此的方法进行交互。现在让我们简要地看一下什么是类、对象,方法、即时变量。对象 - 对象具有状态和行为。例如:一只狗的状态 - 颜色、名称、品种,行为 - 摇动、叫唤、吃。对象是类的实例。类 - 类可以定义为描述对象行为/状态的模板/蓝图。方法 - 从基本上说,一个方法表示一种行为。一个类可以包含多个方法。可以在方法中写入逻辑、操作...原创 2018-02-08 15:09:17 · 3367 阅读 · 0 评论 -
c++之简介
C++ 简介C++ 是一种静态类型的、编译式的、通用的、大小写敏感的、不规则的编程语言,支持过程化编程、面向对象编程和泛型编程。C++ 被认为是一种中级语言,它综合了高级语言和低级语言的特点。C++ 是由 Bjarne Stroustrup 于 1979 年在新泽西州美利山贝尔实验室开始设计开发的。C++ 进一步扩充和完善了 C 语言,最初命名为带类的C,后来在 1983 年更名为 C++。C++...原创 2018-02-08 15:03:33 · 3331 阅读 · 0 评论 -
Lambda表达式基本用法
创建一个匿名函数并执行。Objective-C采用的是上尖号^,而C++ 11采用的是配对的方括号[]。实例如下:123456789#include using namespace std; int main(){ []{原创 2018-02-07 09:23:49 · 5455 阅读 · 0 评论 -
四种强制类型转换的总结
C风格的强制类型转换(Type Cast)很简单,不管什么类型的转换统统是: TYPE b = (TYPE)aC++风格的类型转换提供了4种类型转换操作符来应对不同场合的应用。 const_cast,字面上理解就是去const属性。 static_cast,命名上理解是静态类型转换。如int转换成char。 dynamic_cast,命名翻译 2018-02-07 09:23:33 · 5215 阅读 · 0 评论 -
vector, list, deque的选用
如何选择这三个容器中哪一个,应根据你的需要而定,一般应遵循下面的原则: 1、如果你需要高效的随机存取,而不在乎插入和删除的效率,使用vector 2、如果你需要大量的插入和删除,而不关心随机存取(注意,是随机存取,而不是顺序存取),则应使用list 3、如果你需要随机存取,而且关心两端数据的插入和删除,则应使用deque。vector为存储的对象分配一块连续的地址空间原创 2018-02-06 14:09:39 · 3518 阅读 · 0 评论