Linux命令目录

以前使用博客园,来写博客,现在使用typecho自己搭了一个博客,网站,就把以前在博客园的安装不同分类做个目录放过来吧,一篇一篇搬过来挺不方便的。 这里是Linux命令博客目录,介绍了Linux系统常用的命令,是学习Linux系统不错的资料。

- 阅读全文 -

C++ explicit 关键字

C++ explicit 关键字的作用是禁止只有一个参数的构造函数发生默认的隐式转换(或者除第一个参数外,其它参数都有默认值),如下面的代码:#include <iostream> using namespace std; class TestExplicit { public: TestExplicit(double dVal) :m_dVal(dVal)

- 阅读全文 -

MQTT遗愿(last will) 基于paho.mqtt.c库实现

一、 MQTT遗嘱MQTT 可以设置遗嘱,客户端在连接Broker的时候将遗嘱内容(也是topic + payload形式,遗嘱也有一个主题)发送给Broker并保存在Broker中,当客户端因为非正常原因断开与Broker的连接时,Broker会将遗嘱信息发送给订阅了该主题(订阅遗嘱的主题)的客户端。客户端正常调用DISCONNECT断开连接时属于正常断开连接,Broker不会发送遗嘱,而且会将

- 阅读全文 -

Qt使用QJSEngine执行JavaScript脚本

有时候需要进行一些计算,程序是使用c++来实现的,使用c++来进行计算不是很灵活,这时候可以使用脚本来进行计算,这样灵活,且易于扩展。写了一个简单的Demo进行验证,具体例子如下。#include <QCoreApplication> #include <QJSEngine> #include <QString> #include <QFile> #

- 阅读全文 -

生成指定范围内的随机数

生成10-20之间的随机数#include<iostream> using namespace std; int main() { // 生成10-20之间的随机数 int min = 10, max = 20; int num = rand() % (max - min + 1) + min; return 0; }

- 阅读全文 -

C++内联函数

一、内联函数​ 对于代码量较少,而且经常调用的函数,可以使用内联函数来减少函数调用的开销。内联函数是在编译时将函数调用处的函数体替换,类似于宏展开。​ 制定内联函数的方法是在函数的定义(不是声明处)出增加 inline关键字。在函数的声明处添加inline关键字虽然没有错,但是这种做法是无效的,编译器会忽略在函数的声明处添加inline关键字。由于内联函数代码量较小,通常的做法是将函数

- 阅读全文 -

C++类中创建线程

​ 经常会遇到需要在类中创建线程,可以使用静态成员函数,并且将类实例的指针传入线程函数的方式来实现。实现代码代码如下:/* 类头文件 CTestThread.h */ #include<iostream> #include<process.h> #include<Windows.h> class TestThread { public: Test

- 阅读全文 -

C++创建和使用动态链接库

一个简单的动态链接库的生成和调用例子,太过简单,大神请绕道。一、创建动态链接库使用vs创建工程选择动态链接库。在项目中创建源文件和头文件,并在文件中添加以下代码。在头文件中添加以下代码// dlltest.h 头文件,使用动态链接库时需要包含头文件 #pragma once #ifdef __DLLEXPORT #define __DLL_EXP _declspec(dllexport)

- 阅读全文 -

C++拷贝控制

一、拷贝控制操作​ 当定义一个类时,显示或隐式地指定了此类型的对象在拷贝、赋值和销毁时所执行的操作,通过三个特殊的成员函数来控制这些操作,分别是拷贝构造函数,赋值运算符和析构函数。拷贝构造函数定义了当使用同类型的另一个对象初始化新对象时的操作,赋值运算符定义了将一个对象赋值给同类型的另一个对象时的操作,析构函数定义了此类型的对象销毁时执行的操作,这些操作统称为拷贝控制操作二、什么时候需要拷贝

- 阅读全文 -

C++重载赋值运算符

一、为什么要重载赋值运算符​ 在前面的内容中讲解 拷贝构造函数调用的时机 时说明了初始化和赋值的区别:在定义的同时进行赋值叫做初始化,定义完成以后再赋值(不管在定义的时候有没有赋值)就叫做赋值。初始化只能有一次,赋值可以有多次。​ 当以拷贝的方式初始化一个对象时,会调用拷贝构造函数;当给一个对象赋值时,会调用重载过的赋值运算符。即使没有显式的重载赋值运算符,编译器也会以默认地方式重载它

- 阅读全文 -

C++深拷贝与浅拷贝

一、浅拷贝及其不足对于基本类型数据以及简单的对象,它们的拷贝比较简单,就是直接复制内存。比如下面的代码:class Base{ public: Base(): m_a(0), m_b(0){ } Base(int a, int b): m_a(a), m_b(b){ } private: int m_a; int m_b; }; int main(){ in

- 阅读全文 -