- 博客(70)
- 收藏
- 关注
原创 IdHTTP报错property AllowCookies does not exist
解决方案:indy10相对indy8将TIdHTTP控件的属性中httpOptions[hoForceEncodeParams],把hoForceEncodeParams去掉,即httpOptions属性下hoForceEncodeParams后面选False。在project->options->Package中,去掉build with runtime packages...
2019-10-12 11:18:47
353
原创 多位16进制转10进制
当获取一个数据 比如char a[2]={0xea,0x1d}若其中数据表示数值,则如何将其转为10进制呢?根据计算器可算出 十六进制数ea1d值为:59933根据一下方法: unsigned char a[2] = { 0xea,0x1d }; int b= (int)a[0] * 16 * 16 + (int)a[1]; cout << b << end...
2019-09-07 12:01:04
1007
原创 关于监测串口数据的方法
当我需要在RS485设备和单片机用串口通信时,不知道她们获取的数据到底是什么。这时候迫切想需要实时监测,那么方法如下:首先将单片机uart口和RS485设备通过RS485转ttl模块连接完毕,就和普通的一样,这时候,在uart一端,焊接两排插排,其中一排连接单片机,另一排连接另一个uart转USB模块将另一排的GND连接到单片机上,共地,剩下的 若想监测单片机串口发送的数据。则只连接USB转...
2019-08-03 20:36:27
2711
原创 C语言中16进制转10进制----项目结项难题1
在网上找了很多方法,不是太麻烦了,就是用代码写不出来,其实16进制数就相当于unsigned char类型,但是你没法将其转为int类型,就很烦躁了,方法如下:unsigned char c=0xaa;//解析16进制int a=(int)(c>>4);int b=(int)(c&0x0f);int value=16*a+b;如此简单。。。。。。。...
2019-08-03 20:20:48
400
原创 Qt中使用MySQL 驱动无效的解决办法!!!!!!
关于Qt中使用MySQL时,出现错误**“MYSQL driver calid false”**错误。网上有很多教程,大体都是安装MySQL,然后将有关lib、dll文件放入Qt安装目录和执行文件夹中,但是!!!,但是!!还是不行,折磨疯了人的东西。第一步:下载与Qt一样位数的MySQL,都为64或32位。MySQL采用源码安装。下载完成后解压,然后在 mysql安装目录/bin下运行m...
2019-07-30 23:08:32
530
原创 VS 2017使用asio的配置(非boost)
下载standalone版本Asio。将下载的文件解压,然后放入项目文件夹。将文件夹添进项目。在 项目->Class属性->包含目录中添加asio路径。在文件添加#include "asio-1.12.2/include/asio.hpp"。OK!!!...
2019-06-16 20:51:06
3821
1
原创 C++11---新特性1---nullptr---列表初始化---constexpr---using---auto---decltype
1. nullptr作用:表示空指针,用于指针初始化。引入nullptr原因:由于之前表示空指针,使用宏NULL或0来表示。但是再c和c++中定义如下:#ifndef NULL #ifdef __cplusplus #define NULL 0 #else /* __cplusplus */ #define NULL ...
2019-06-04 22:23:45
383
原创 C++ Primer------------------------顺序容器
容器:一些特定类型对象的集合顺序容器:为程序员提供控制元素存储方式和一定顺序访问元素的能力。标准容器如下(标准库):快速顺序访问元素的能力 - vector :可变大小数组 连续空间存储,所以在两端添删元素快速,中间添删很慢。 - deque:双端队列 连续空间存储,所以在两端添删元素快速,中间添删很慢。 - forward_list :单向链表 非连续空间存储,但只能在尾部...
2019-05-26 10:10:42
131
原创 C++ Primer-----------------迭代器Iterator
所有标准库容器都可以使用迭代器,但是只有少数几种才支持下标运算符,所以对于容器,尽量不使用下标运算符有迭代器的容器都拥有返回一个迭代器的成员,比如begin和end,begin成员会返回一个迭代器,指向第一个元素。end成员返回一个迭代器,指向尾元素的下一个位置,并无实际意义,如果容器为空,则begin和end返回同一个迭代器。都是尾迭代器。迭代器运算符*iter 返回迭代器iter...
2019-05-23 10:30:22
164
原创 C++ Primer-------vector
vector是标准库类型,表示对象的集合,其中所有对象的类型都相同。集合中每个对象都有一个索引,用于访问对象。头文件:<vector>命名空间:std::vectorvector是一个类模板,模板本身不是类或函数,可以看作编译器生成类或函数的一份说明。编译器根据模板创建类或函数过程叫做实例化。1. vector实例化vector<int> vec; //保存...
2019-05-23 09:26:43
228
原创 C++ Primer-------string
前提:阅读C++ Primer 第五版笔记string类型表示可变长的字符序列。头文件:<string>命名空间:std::string定义和初始化string对象string s1; //默认初始化,直接构造,s1是空字符串string s2=s1; //s2是s1的副本,调用拷贝构造函数string s2(s1); //直接构造st...
2019-05-22 20:42:35
180
原创 Qt中使用Asio的配置
环境:win10+Qt 5.11Asio版本:asio-1.12 standalone版本下载地址:下载配置:将下载的压缩包解压至项目文件中。在项目的.pro文件中添加如下:INCLUDEPATH+=asio-1.12.2\includeDEFINES += ASIO_STANDALONELIBS += -lpthread libwsock32 libws2_32在mai...
2019-05-21 08:13:00
1624
原创 运算符重载
重载的运算符(有些例外情况)不必是成员函数,但必须至少有一个操作数是用户定义的类型。C++对用户定义的运算符重载的限制:重载后的运算符必须至少有一个操作数是用户定义的类型,这将防止用户为标准类型重载运算符。使用运算符不能违反运算符原来的句法规则。即加法运算不能只有一个操作数等。同样不能改变运算符的优先级。不能创建新运算符不能重载以下运算符. : 成员运算符.* : 成...
2019-03-08 14:38:56
214
原创 类继承 总结
protected继承:关键字protected 与private相似,在类外只能用公有成员函数来访问类成员。派生类的成员可以直接访问基类的保护乘员,但不能直接访问基类的私有成员。抽象基类C++使用纯虚函数提供未实现的函数。春旭函数的结尾处为=0类声明中包含纯虚函数,则不能创建该类的对象。从抽象基类派生出的类的具体特征。类设计回顾编译器生成的成员函数默认构造函数要么没有参数,要么...
2019-03-03 22:35:44
171
原创 静态联编和动态联编
联编: 将源代码中的函数调用解释为执行特定代码块称为函数名联编。静态联编: 在编译过程中进行联编。动态联编: 编译器生成能在程序运行期间选择正确的虚方法的代码,称为动态联编。因为只有在运行期间,才知道函数选那种类型的对象。将派生类引用或指针转换为基类引用或指针成为向上强制转换,派生类继承了基类对象的所有数据成员和成员函数,所以可以对基类对象的所有操作都适用于派生类对象。使用虚函数的成本...
2019-03-03 21:51:53
249
原创 继承(多态和虚析构函数)
派生类不能直接访问基类的私有成员,必须通过基类方法进行访问。创建派生类对象时,首先创建基类对象。也就是说基类对象在程序进入派生类构造函数之前被创建。C++使用成员初始化列表来完成。派生类构造函数初始化基类私有成员,采用成员初始化列表。Class_name::Class_name(int a,int b, int c):Base_class(a,b) { }派生类构造函数要点:首先创...
2019-03-03 21:12:24
510
原创 9.2 动态分配
使用new 运算符初始化为内置的标量类型(int、double等)分配存储空间并初始化,可在后面加上初始值,用括号括起来。int *pi=new int(6); *pi = 6Class_Name *Class_ptr= new Class_Name(value);//需要有相应的构造函数 若初始化常规结构或数组,需要大括号的列表初始化(C++11)struct where {...
2019-03-01 20:33:52
147
原创 9 内存模型
头文件: 头文件通常包含以下内容:函数原型使用#define 或const定义的符号常量结构声明类声明模板声明内联函数存储连续性、作用域和链接性存储连续性(C++有三种(C++11有四种)方案存储数据)自动存储持续性:有两种变量是自动存储连续性:自动变量、寄存器变量在函数定义中声明的变量(包括形参)的存储连续性为自动的。默认情况下,作用域为局部,没有链接性。位置: 自动...
2019-03-01 20:12:54
348
原创 指针与对象小结
如何创建对象指针使用常规表示法来声明指向对象的指针。BadString *S ;将指针初始化为指向已有的对象BadString s1("liming", 13);BadString *S = &s1;使用new 来初始化指针,这将创建一个新的对象BadString s1("liming", 13);BadString *s4 = new BadString...
2019-03-01 18:39:37
133
原创 12.4 返回值为对象的说明
概念:当成员函数或独立的函数返回对象时,有三种返回方式。1. 返回指向对象的引用2. 指向对象的const引用3. 返回const对象返回指向对象的引用使用在重载赋值运算符或重载cout一起使用的<<运算符。因为形参对象需要改变,所以不用const 修饰。返回不调用复制构造函数,因为返回的是引用。返回指向const对象的引用使用const引用常见原因是提高效率如图...
2019-03-01 18:28:24
330
原创 12.1 复制构造函数和赋值运算符
一、静态类成员特点静态数据成员,永远只创建一个存储空间,所有对象共享,可以用来判断创建了多少个对象的功能。在类的声明时不分配内存静态类成员不是对象的组成部分实例class BadString { char *name; int age; static int number;//表示创建的对象个数};若要实现计数创建对象个数,则构造函数可以为:BadString::Ba...
2019-03-01 15:46:32
183
原创 C++中的string类全面分析
首先在c++中string是一个类,其头文件为 < string >string在标准空间std。具体资料在官方链接。主要参考官方文档和具体实例。介绍strings are objects that represent of characters.string的定义和初始化1.定义string类可先不初始化,先定义。std::string str1;当string...
2019-02-24 15:30:54
175
原创 CV-限定符
在C++中的存储说明符有以下几种:auto(在c++中不再是说明符)registerstaticexternthread_local(C++11新增)mutable注意:在C++11之前,可以在变量中定义中声明为自动变量;但是在C++11中auto用于自动类型推断。关键字static被用在作用域为整个文件中的声明时,表示内部链接性;被用于局部声明中,表示局部变量的存储持续性...
2019-01-25 16:21:53
1277
原创 Qt使用笔记2-添加菜单与资源图标
1. 添加主窗口菜单打开mainwindow.ui文件进入设计模式。在这里可以看到界面左上角的“在这里输入”,我们可以在这里添加菜单。双击“在这里输入”,将其更改为“文件(&F)”,然后按下回车键。这里的&F表明将菜单的快捷键设置为了Alt+ F,可以看到,实际的显示效果中&符号是隐藏的。2. 添加资源文件Qt中可以使用资源文件将各种类型的文件添加到最终生成的可执行文...
2018-10-28 15:24:34
398
原创 Qt使用笔记1 -登陆界面设计
使用中文字体使用QTextCodec类的setCodecForTr()函数,一般的使用方法就是在要进行编码转换之前调用该函数,下面我们在main.cpp文件中添加代码: #include &lt;QtGui/QApplication&gt; #include "mainwindow.h" #include &lt;QTextCodec&gt; //添加头文件 int .
2018-10-28 13:08:09
577
原创 虚基类
虚基类意义:假设定义了一个公共基类A。类B和类C都由类A公有派生,类D由类B和类C公有派生。显然D包含类A的两个拷贝,不仅多占用内存,而且还造成多个拷贝的数据不一致。不定义虚基类的效果如下:class A {public: int x; void SetX(int a) { x = a; } A(int a = 0) { x = a; cout << ...
2018-09-26 20:03:56
14705
原创 构造函数
这节不讲述构造函数的一般用法和概念。1. 构造函数的类型转换功能单参数构造函数的类型转换功能是指,如果类定义中提供了只带一个参数(没有其他参数或其他参数都有默认值)的构造函数,则当一个其他类型的数值或变量x赋值(注意不是初始化)给该类的对象A时,由于类型不一致,系统自动以x为实参调用该类的单参数构造函数,创建一个该类的临时对象,并将临时对象赋给A,实现隐式类型转换。如下://类Money的...
2018-09-26 19:58:32
866
原创 5. 继承与派生
通过继承已有类的部分或者全部成员,创建新类的过程称为派生,继承是面向对象程序设计的特点之一。5.1 继承定义:若定义类A时,使用了已有类B的部分或全部成员,则类A继承了类B,成类B为基类或父类,成类A为派生类或子类。一个派生类又可作为另一个类的基类,一个基类也可派生出若干个派生类,这样就构成类树,或类族。从 已有类派生新类时,可对派生类做以下变化:全部或部分继承基类的成员数据或成员函数...
2018-09-26 19:50:06
147
原创 4. 运算符重载
运算符重载是面向对象程序设计的多态性表现之一。作用:当我们需要两个复数相加时,我们想要和整数一样直接相加就可以,但是标准中不支持复数相加,所以此时我们需要运算符重载。格式:&lt;type&gt; operator @ (&lt;Arg&gt;){ ...//函数体}其中,typr为函数返回值的类型,@为要重载的运算符,,Arg为函数的形参表operator为关键字,它与其后...
2018-09-26 19:47:59
304
原创 3. const对象和成员函数
使用关键字const来说明对象,这样的对象成为常对象,它的数据成员值在整个生存周期不能改变,所以常对象必须进行初始化,而且不能更新。格式如下:const <类名> <对象名>(<初值>)常对象只能调用常成员函数。常成员函数格式如下:<类型说明符> <函数名>(<参数表>) const;其中,关键字const加在参...
2018-09-26 19:46:55
178
原创 2. 友元和静态成员
存在的意义:当把类的成员的访问权限定义为private或者protected时,在类外只能通过公有函数成员访问,有时候频繁调用函数成员,必然降低程序运行效率。友元的作用:友元的作用是提高程序的运行效率,它可以直接访问类的私有和保护成员,但也因此破坏了类的封装性,应谨慎使用。表现形式:友元可以是一个函数,也可以是一个类。前者是友元函数,后者是友元类。2.1 友元函数:定义:在定义一个类...
2018-09-26 19:44:37
267
原创 类和对象
1.1 类的定义class <类名>{ <<private:>> <成员表1>; <<public:>> <成员表>; <<protected:>> <成员表>;
2018-09-26 19:40:46
171
原创 Python基础(11)-面向对象编程-(获取对象信息和属性)
使用type()使用type(xxx)函数可以判断基本数据类型和自定义数据类型:&amp;gt;&amp;gt;&amp;gt; a=10&amp;gt;&amp;gt;&amp;gt; type(a)&amp;lt;class 'int'&amp;gt;&amp;gt;&amp;gt;&amp;gt; type(i
2018-07-13 18:14:36
232
原创 Python基础(10)-面向对象编程-(继承和多态)
继承当定义一个class时,从现有的class继承,新的class叫做子类,被继承的成为父类。 比如:class Animal(object): def run(self): print('%s is runing...'%self)class Dog(Animal): passclass Cat(Animal): pass子类继承了父...
2018-07-13 15:21:43
201
原创 Python基础(9)-面向对象编程-(1)
面向对象面向对象编程(oop)是一种程序设计思想。在面向对象编程中,对象时程序的基本单元。在Python中,所有数据类型都可以视为对象,自定义对象数据类型就是面向对象中的类(class)的概念。 比如:class Student(object): def __init__(self,name,score): self.name=name sel...
2018-07-13 14:52:51
290
原创 Python基础(8)-装饰器和偏函数
函数对象有一个__name__属性,可以拿到函数的名字装饰器Decorator定义:在代码运行期间动态增加功能的方法
2018-07-11 13:43:22
203
原创 Pyhon基础(7)-返回函数和匿名函数
返回函数将函数作为返回值返回 作用:比如求和,我们一般将实现写在函数中,然后调用这个函数,但是若我们不需要立即求和,而是在后面的代码中,根据需要再计算 比如:def s(n): print('s') def su(): print('su') sum=0 m=0 for m in n: ...
2018-07-10 21:28:41
396
原创 Python基础(6)-高阶函数
mapmap()函数接收两个参数,一个是函数,一个是Iterable map将传入的函数依次作用到序列的每个元素。并把结果作为新的Iterator 返回。 比如:def f(x): return x*x执行结果如下:>>> r=map(f,[1,2,3,4,5,6,7,8,9])>>> r<map object at ...
2018-07-10 16:09:03
110
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人