
c++
文章平均质量分 50
LC900730
这个作者很懒,什么都没留下…
展开
-
C++Primer变量
变量初始化作为C++11新标准的一部分,用花括号来初始化变量,还有一种方式是列表初始化。现在无论是初始化对象还是某些时候为对象赋新值,都可以使用这样一组由花括号括起来的初始值。 当使用内置类型的变量时,这种初始化形式有一个重要特点。如果我们使用列表初始化且初始值存在丢失信息的风险,则编译器将报错 long double ld=3.1415926536; int a{ld},b={ld}; i原创 2017-05-23 14:44:54 · 277 阅读 · 0 评论 -
new和数组
new分配数组int *pia=new int[get_size()];//pia指向第一个int//【】必须是整形,但是不必是常量 typedef int arrT[42]; int *p=new arrT; //分配一个42个int型的数组虽然称使用new T[]分配的内存为“动态数组”,但是这种叫法在某种程度上有误导。当使用new分配一个数组时候,我们并未得到数组类型的对象,原创 2017-09-26 17:41:37 · 2532 阅读 · 0 评论 -
allocator类
allocator是一个模板。为了定义这个allocator对象,我们必须指明这个allocator可以分配的对象类型。 allocatoralloc;allocator分配的内存是未构造的。allocator<string >alloc; //可以分配string的allocator对象auto const p=alloc.allocate(n); //分配n个未原创 2017-09-26 18:09:47 · 360 阅读 · 0 评论 -
C++中static
//testStatic.h#ifndef TESTSTATIC_H#define TESTSTATIC_H#include<QObject>#include<QDebug>class TestStatic:public QObject{public: TestStatic(); void testhello(){ qDebug()<<"hello st原创 2017-09-01 14:51:33 · 241 阅读 · 0 评论 -
拷贝构造
拷贝构造函数如果一个构造函数的第一个参数是自身类类型的引用,且任何额外的参数都有默认值,则此构造函数是拷贝构造函数。class Foo{ public : Foo(); //大多数下是const,但不是必须的 Foo(const Foo&); }原创 2017-09-26 22:43:10 · 269 阅读 · 0 评论 -
操作重载
基本概念重载的运算符是具有特殊名字的函数:operator和其后要定义的运算符号组成。 重载的运算符也包含返回类型、参数列表、函数体。模板函数模板:以关键字template开始,后跟一个模板参数列表,这是一个逗号分隔的一个或者多个模板参数列表,以<> 包起来。template<typename T>T的实际类型在编译时候根据compare使用情况确定int compare(const T &1原创 2017-09-26 22:44:34 · 248 阅读 · 0 评论 -
c++编译器加的函数
C++默认编写并调用哪些函数一个empty class经过c++处理之后,编译器会为其声明(编译器版本的)一个copy构造函数、一个copy assignment操作符和一个析构函数。此外,如果没有声明任何构造函数,编译器会声明一个default构造函数。所有这些函数是public 和inline。class Empty{}等价于class Empty{ public : E原创 2017-09-27 10:08:25 · 413 阅读 · 0 评论 -
智能指针
shared_ptr和unique_ptrshared_ptr允许多个指针指向同一个对象; unique_ptr则独占所指向的对象。shared_ptr模板,因此创建的时候必须提供额外信息,指针可以指向的类型。 如:shared_ptr&amp;lt;string&amp;gt; p1; //可以指向string shared_ptr&amp;lt;list&amp;lt;int&amp;gt;&原创 2017-09-26 14:36:23 · 320 阅读 · 0 评论 -
C++
Assert预处理宏assert预处理宏: 实际上是一个预处理变量,行为有点类似于内联函数。 assert宏使用一个表达式作为它的条件。 assert(expr):如果表达式为假,assert输出信息并且终止程序执行。 如果为真,则assert什么也不做。 assert定义在cassert头文件中。NDEBUG预处理变量assert的行为依赖于一个名为NDEBUG的预处理变量的状态。如果定原创 2017-09-24 21:37:27 · 278 阅读 · 0 评论 -
C++中数组
数组形参 数组的2个性质:1不允许拷贝数组;2。使用数组时(通常)会将其转换成指针。 因为不能拷贝数组,所以无法以值传递的方式使用数组参数。因为数组参数会被转换为指针,所以当我们为函数传递一个数组当时候,实际上传递的是指向数组首元素的指针。//形式不同,但是print函数是等价的void print(const int *);void print(const int []);void pr原创 2017-09-24 20:16:00 · 468 阅读 · 0 评论 -
GDI
GDI是windows图像显示程序与实际物理设备之间的桥梁,GDI使得用户无需关心具体设备的细节,而只需要在一个虚拟的环境中操作; GDI为程序提供了图像设备无关的接口,包括视频显示、打印机、画图仪和传真机等。我们利用GDI可以方便的在屏幕或打印机及其他输出设备上输出图形、文本等。 GDI无非就是几百个函数与一些相关的数据结构和宏组成的整体而已,它的使命就是实现一套通用的图形对象,来向屏幕、内存原创 2017-05-22 21:49:37 · 303 阅读 · 0 评论 -
C++0528
宽字符:wchar_t *str(L”china”); 窄字符:char *str(“china”); ::域控制符 命名空间里面的所有数据、函数、类、对象等都是公有的,struct中默认都是公有,但是可以加上权限修饰符using namespace作用域为从代码开始到结束,且using必须放在定义的下方;autoint num[10]={1,2,3,4,5,6,7,8,9,10};for原创 2017-05-28 20:43:04 · 277 阅读 · 0 评论 -
const
C语言中的constC++中的const可以直接初始化数组const int num=5;int *p=(int *)# *p=4;//编译通过,但是不会执行const_cast对数组的引用int a[10]={};int(&ra)[10]=a;int b[2][5]={X,X,X,X,X,X,X,X,X,X,X};int (&rb)[2][5]=b;std::cout<<a原创 2017-05-30 10:33:54 · 397 阅读 · 0 评论 -
函数模板与类模板
函数模板原创 2017-06-16 11:10:55 · 424 阅读 · 0 评论 -
容器与算法
operator ():重载小括号模板偏特化模板中const:对类型进行严格检测 const T*指向一个常量的指针 1.类模板显示特化 2.默认模板参数 3.成员模板 4.模板类的成员函数可以是一个模板 已结有了vector添加成员,就需要成员函数关键字typename:作为类型前的标识符 template class MyClass typename T::SubTy原创 2017-06-18 16:48:59 · 430 阅读 · 0 评论 -
C++小知识点
#include<iostream>using namespace std;class C1{public: int i; int j; int k;protected:private:};class C2{public: int i; int j; int k; static int m;public: int ge原创 2017-07-02 10:25:13 · 333 阅读 · 0 评论 -
C++之字符串
STL从广义上分为三类:算法、容器、迭代器;算法和容器可以通过迭代器无缝对接。容器关联式容器(sequence containers): 序列式容器(Associated containers):字符串:string是一个类,char *是一个指向字符的指针 string封装了char ,管理这个字符串,是一个char 的容器 string提供了一系列字符串操作函数,查找find,拷贝copy原创 2017-06-18 22:17:55 · 255 阅读 · 0 评论 -
C++之List
双向链表容器,可以高效插入与删除元素 不可以随机存取元素,即不能at与[]; 迭代器可以++,可以–,但是不能+5,-5等list的删除元素是左闭右开。 //插入元素 链表的起始位置是0,那么插入元素3,就是原来的第3个就会变成第4个insert(it,100);//那么插入后list.clear();移除容器中所有数据list,erase(beg,end);删除[beg,end)元素之原创 2017-07-12 20:37:35 · 830 阅读 · 0 评论 -
C++多态
多态: 程序在运行时候,才决定调用的函数。C++多态是通过虚函数来实现的,虚函数运行子类重新定义成员函数,而子类重新定义父类的做法称为覆盖(override)或者称为重写(包括直接重写成员函数或者重写虚函数)。 多态与非多态实质区别是:早绑定还是晚绑定; 如果函数调用,在编译器编译期间就可以确定函数调用地址,并产生代码,是静态的,不能在编译期间确定,就是晚绑定。多态与继承都是为了重用,继承额可原创 2017-07-05 18:28:57 · 288 阅读 · 0 评论 -
0709C++
类型转换: int b=static_cast(2.3)://CPP显示转换构造函数初始化class myclass{public : int x,y; myclass(int a):x(a),y(a){//赋值初始化 cout<<"构造"<<endl; }};//构造函数初始化 myclass my1=5; myclass my1(5); myclas原创 2017-07-09 16:38:15 · 274 阅读 · 0 评论 -
QGC
记录学习知识点QGCApplication头文件QGCApplication:public #ifdef __mobile__ QGuiApplication#else QApplication#endif{ Q_OBJECTpublic: QGCApplication(int &argc,char *argv[],bool unitTesting);原创 2017-08-16 00:20:15 · 2276 阅读 · 0 评论 -
QGC瓦片地图
内置的地图QGCLocationPlugin文件夹中 头文件中://QGCMapEngine.hclass QGCTileSet(){public: QGCTileSet(){ clear(); } QGCTileSet &operator+=(QGCTileSet &other){ tileX0+=other.tileX0;原创 2017-08-17 20:49:15 · 2662 阅读 · 1 评论 -
QML
qmlQML文件的后缀是qml,其实是个文本文件。#include "Map.hpp"Map::Map(QObject *parent) : QObject(parent){ mManager = std::make_shared<QNetworkAccessManager>(); mMapProvider = std::make_shared<MapProvider>();原创 2017-08-18 16:29:16 · 540 阅读 · 0 评论 -
Qt中注册QML类型
qmlRegisterType是一个可以将C++实现的类在QML中调用的,连接C++和QML的一个工具。作用:QML和C++为什么要混合编程,简单来说,就是使用QML高效便捷地构建UI,而C++则用来实现业务逻辑和复杂算法。qmlRegisterType里共4个参数,第一个参数*url指的是QML中import后的内容,相当于头文件名,第二个第三个参数分别是主次版本号,第四个指的是QML中类的名字。原创 2017-08-16 11:05:15 · 4474 阅读 · 0 评论