随笔分类 - C++学习
C++学习之路
【C++新特性】Lambda表达式
摘要:C++11的一大亮点就是引入了 Lambda 表达式。利用Lambda表达式,可以方便的定义和创建匿名函数。 声明Lambda表达式 声明格式如下: [capture list] (params list) mutable exception-> return type { function bod
阅读全文
【C++11新特性】allocator空间配置类
摘要:原文链接: http://blog.csdn.net/Xiejingfa/article/details/50955295 今天我们来讲讲C++的allocator类。 C++提供了new和delete操作符来管理动态内存空间。new操作通常需要完成两部分工作:一是在系统中申请内存空间,二是在分配的
阅读全文
【C++11新特性】auto关键字
摘要:原文链接: http://blog.csdn.net/xiejingfa/article/details/50469045 熟悉脚本语言的人都知道,很多脚本语言都引入了“类型自动推断”技术:比如python,可以直接声明变量,在运行时进行类型检查。随着C++11标准的发布,C++语言也引入了类型自动
阅读全文
Socket学习
摘要:TCP/IP(Transmission Control Protocol/Internet Protocol)即传输控制协议/网间协议,是一个工业标准的协议集,它是为广域网(WANs)设计的。 UDP(User Data Protocol,用户数据报协议)是与TCP相对应的协议。它是属于TCP/IP
阅读全文
模板的使用
摘要:模板常见的有三种类型,函数模板,类模板,以及非类型模板,模板的定义不能在函数中, 下面只是简单介绍下函数模板和类模板 函数模板: template <class T> T max(T x, T y) { return (x>y)? x:y; } 以上为声明一个函数模板,用来比较输入的两个相同类型的参
阅读全文
为什么需要拷贝构造函数
摘要:把参数传递给函数有三种方法,一种是传值,一种是传地址,一种是传引用。传值与其他两种方式不同的地方在于 当使用 传值方式的时候,会在函数里面生成传递参数的一个副本,这个副本的内容是按位从原始参数那里复制过来的,两者的内容是相同的。 当原始参数是一个类的对象时,它也会产生一个对象的副本,此时需要注意:一
阅读全文
进程与线程
摘要:进程 我们都知道计算机的核心是CPU,它承担了所有的计算任务,而操作系统是计算机的管理者,它负责任务的调度,资源的分配和管理, 统领整个计算机硬件;应用程序是具有某种功能的程序,程序是运行于操作系统之上的。 进程是一个具有一定独立功能的程序在一个数据集上的一次动态执行的过程,是操作系统进行资源分配和
阅读全文
变量声明和定义的关系
摘要:为了允许把程序拆分成多个逻辑部分来编写,C++语言支持分离式编译机制,该机制允许将程序分割成若干个文件,每个文件可以被独立翻译 如果将程序分为多个文件,则需要有在文件间共享代码的方法。例如,一个文件的代码可能需要使用另一个文件中定义的变量。一个实际的例子是std::cout和std::cin,它们定
阅读全文
类成员函数可以为回调函数吗
摘要:关于类成员函数是否可以成为回调函数,我们首先需要明确几个定义,1. 什么是回调函数 2. 为什么要使用回调函数 3. 调用普通类成员函数和调用回调函数有什么区别 什么是回调函数? 简而言之,回调函数就是一个通过函数指针调用的函数,如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调
阅读全文
名字查找
摘要:定义:寻找与所用名字最匹配的声明的过程 1. 首先,在名字所在的块中寻找其他声明语句,只考虑在名字的使用之前出现的声明(确认是否是局部变量) 2. 如果没找到,继续查找外围作用域,继续向其他地方扩散寻找,确认是否是全局变量 3. 如果最后还是没有找到,那么程序会报错 对于定义在类内部的成员函数来说,
阅读全文
何时会发生隐式类型转换
摘要:在大多数表达式中,比int类型小的整型值首先提升为较大的整数类型, 在条件中,非bool值转化为bool值 初始化过程中,初始值转换成变量的类型,在赋值语句中,右侧运算对象转换成左侧运算对象的类型 如果算术关系或运算关系的对象有多种类型,需要换换成同一种类型,函数调用也会发生类型转换
阅读全文
C++类型检查
摘要:与大多数语言一样,C++也是类型决定了能对该对象进行的操作,一条表达式是否合法依赖于其中参与运算的对象的类型,C++是一种静态数据类型语言,它的类型检查发生在编译时, 因此编译器知道程序中每一个变量对应的数据类型,C++定义了几种基本内置类型,如字符,整型,浮点数等,同时也为程序员提供了自定义数据类
阅读全文
bool类型为什么可以当做int
摘要:实际上bool型变量占用了一个字节的内存,当值为false的时候,实际存储的是0x00,为true时实际存储的是0x01,因此可以作为int整型使用 bool型只分0与非0,0为false,其余的包括负数在内都是true
阅读全文
在类的外部定义成员函数注意形式
摘要:在类的外部定义成员函数时函数的定义必须与声明匹配,也就是说返回类型,参数列表,函数名都得与类内的声明保持一致,如果成员函数被声明为常量成员函数, 那么它的定义也必须在参数列表后面明确指定const,类外部定义的成员名字必须包含类名,const一般位于声明或定义的最后 bool withline()
阅读全文
局部类
摘要:实际应用中大部分的类都是定义在头文件中,且一个头文件一般都只定义一个类,这样做不仅代码简洁,逻辑清楚其实还有一个好处就是保持类的定义一致 类可以在函数体内定义,但是在函数体内定义的类即局部类受到了一些限制,所以类一般都不定义在函数体内; 在函数体外定义类时,在各个知道的源文件中可能只有一处该类的定义
阅读全文
命名规范
摘要:类命名规范:首字母大写,和本程序密切相关的类(非可重用类),类名前要加上一个特定的大写字母(初步决定为此程序名的第一个字母),同QT官方类的命名方式 如 class STA_SETUPMAIN 函数命名规范:使用驼峰命名法,即首字母小写,后面的每个单词的首字母大写,示例:void openFile(
阅读全文
代码格式
摘要:头文件的格式: 开头两行与结尾一行是防止文件重复包含的,也仅仅是防止文件被重复包含,是无法防止变量被重复定义的, 之后是在此头文件下包含的其他头文件, 假如使用了前向声明,那么在头文件的下方紧接着就可以 class这些类了, 如果不打算在qml中调用C++的枚举的话,枚举可以接着前向声明写, 这里是
阅读全文
Static的使用
摘要:C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数,不涉及类;后者主要说明static在类中的作用。 一、面向过程设计中的static 1、静态全局变量 在全局变量前,加上关键字static,该变量就被定义成为一个静态全局变量
阅读全文
Const的使用
摘要:const意味为readonly,即只读,const可被施加于任何作用域内的对象,函数参数,函数返回类型,成员函数本体 使用: const修饰变量时本质是 const在谁后面谁就不可修改,const在最前面则将其后移一位即可,二者等效,*号也算一种数据类型 例如: 1. const int a; 与
阅读全文
重写,重载,重定义
摘要:1. 重写 override 定义:子类重写基类的虚函数 特点:(1) 函数名相同 (2) 作用域不同 (3) 参数列表相同 (4) 基类函数必须有virtual关键字且不能有static (5) 返回值相同 (6) 重写函数的访问修饰符可以不同 例子:基类:virtual void restric
阅读全文
浙公网安备 33010602011771号