02 2017 档案
摘要:根据不同重载方式有不同的调用方式。全局函数重载运算符,成员函数或者友元函数重载运算符。 重载运算符是具有特殊名字的函数,它由关键字operator和其后要定义的运算符共同组成。和其他函数一样,重载的运算符也包含返回类型、参数列表以及函数体。 重载运算符的参数数量应该与运算符作用的对象数量一样多,一元
阅读全文
摘要:nm用于列出程序文件中的符号。建立nmtest.c文件: nm的第一列是指程序运行时符号在内存中的地址,它表示函数或变量的开始地址;第二列是指相应的符号放在哪个段,最后一列则是符号的名称。 第二列的信息对我们非常有用,可以让我了解在程序中所定义的一个符号是被放在程序的哪一个段的。下面列出常见字母含义
阅读全文
摘要:类可以允许其他类或者函数访问它的私有成员,方法是令其他类或者函数成为它的友元。如果类想把一个函数或者类声明成它的友元,只需要增加一条以friend关键字开始的声明语句即可。 友元声明只能出现在类定义的内部,但是在类内出现的具体位置不限。友元不是类的成员也不受它所在区域访问控制级别的约束,一般来说,最
阅读全文
摘要:1.如果要将多个.o文件生成一个库文件,则存在两种类型的库,一种是静态库,在linux里面后缀是.a,另一种是动态库,后缀为.so。 当可执行程序要与静态库进行链接时,所用到的库中的函数和数据会被拷贝到最终的可执行程序中。而采用动态库则不会,程序加载器在后台为我们讲所需的动态库自动加载到内存中且保证
阅读全文
摘要:如果这个类需要一个析构函数,我们几乎可以肯定它也需要一个拷贝构造函数和一个拷贝赋值运算符。 如果一个类需要拷贝构造函数,几乎可以肯定它也需要一个拷贝赋值运算符,反之亦然。 然而,无论是需要拷贝构造函数还是需要拷贝赋值运算符都不必然意味着也同时需要析构函数。
阅读全文
摘要:addr2line用于得到程序指令地址所对应的函数,以及函数所在的源文件名和行号。 在不少嵌入式开发环境中,编译器的名称往往不是gcc,而是想arm-rtems-gcc这样的,对于这种命名形式的编译器,读者通常可以找到arm-rtems-addr2line ,arm-rtems-objdump等相应
阅读全文
摘要:summary: 非静态成员函数有this指针,这样的成员函数实现参数会比全局函数少一个,反之全局函数参数会比非静态成员函数多一个。c++中多使用引用更好。
阅读全文
摘要:1 #include 2 #include 3 using namespace std; 4 class Copy_construction { 5 public: 6 Copy_construction(int a,int b,int c) 7 { 8 this->a = a; 9 this->b = b; 10 ...
阅读全文
摘要:1.深/浅拷贝 编译器为我们提供的合成拷贝构造函数以及合成的拷贝赋值运算符都是浅拷贝。浅拷贝只是做简单的复制,如果在类的构造函数中new出了内存,浅拷贝只会简单的复制一份指向该内存的指针,而不会再开辟内存,这就会使得程序运行出现内存错误,如此,当对象析构的时候,会delete多次同一块内存区域,发生
阅读全文
摘要:test1: 1 #include<iostream> 2 using namespace std; 3 class Copy_construction { 4 public: 5 Copy_construction(int a = 0) 6 { 7 this->a = a; 8 cout << "
阅读全文
摘要:选择一个目录创建一个Makefile文件; 注意第二行的开头需要时TAB建空开,不要用空格 执行make make的时候,无论你创建的是makefile还是Makefile都可以识别 ,不在乎开头的字母是否大写。 makefile中的第一个重要概念是目标(target),all就是一个目标,目标名放
阅读全文
摘要:4.1在要求隐式转换的程序上下文中,我们可以通过将构造函数声明为explicit加以阻止。 关键字explicit只对一个实参的构造函数有效。需要多个实参的构造函数不能用于执行隐式转换,所以无需将这些构造函数指定为explicit。只能在类内声明构造函数时使用explicit关键字,在类外部定义时不
阅读全文
摘要:今天man了一下open,发现open函数的原型居然看着是重载,C语言不是不支持重载么,经过一番搜寻之后,总结如下: 可变长参数函数 C语言是不支持函数重载机制的,但是支持变长参数函数,当然C++也是支持的。 Linux中open系统调用 查看Linux中open的Manual Page,看到如下说
阅读全文
摘要:windows10和ubuntu16.04双系统,装完后,在windows下时间不对,之前的老办法是: 1 sudo gedit /etc/default/rcS 2 utc=yes 改成utc=no 然而我的16.04并没有这个。继续寻找, sudo timedatectl set-local-r
阅读全文
摘要:前言:C语言中的数组指针和指针数组 数组指针,是指向数组的指针的缩写;指针数组,是存放指针的数组的缩写。其实很多时候,往往因为简写和缩写带给我们很多困惑。我曾想过不用简称去学习,但在很多时候,我们查询的书籍文档和文章中还是会频频出现这样的简称,所以有必要扣一下字眼了。 无论在《c和指针》还是《Eff
阅读全文
摘要:-Qt使用统一的坐标系统定位窗口部件和位置大小 -Qt部件类提供成员函数在坐标系统中进行定位 -QWidget类提供了窗口部件所需的坐标系统成员函数 代码测试 NOTE:geometry()和frameGeometry()中的几何数据必须在show()之后调用才有效。
阅读全文
摘要:窗口组件: 图形用户界面由不同的窗口和窗口组件构成; Qt以组件对象的方式,构建图形用户界面。 组件的类型包括: 容器类(父组件):用于包含其他的界面组件 功能类(子组件):用于实现特定的交互功能 Qt中没有用父组件的顶级组件叫做窗口。 Qwidget 继承自QObject和QPaintDevice
阅读全文
摘要:类Unix系统目录结构ubuntu没有盘符这个概念,只有一个根目录/,所有文件都在它下面/ 根目录bin //系统可执行程序,如命令boot //内核和启动程序,所有和启动相关的文件都保存在这里grub //引导器相关文件dev //设备文件etc //系统软件的启动和配置文件,系统在启动过程中需要
阅读全文
摘要:1.下载安装目前最新版的qt,官网链接:https://www.qt.io/qt5-8/; 和qt4不同,qt5在线安装,轻巧快速,而且不用配置一些繁琐的东西,安装之后会出现Qt creator这就是我们之后使用的IDE。 2.Qt creator工程包含不同类型的文件 _ .pro项目描述文件 _
阅读全文
摘要:3.1如果同一作用域内的几个函数名字相同但形参列表不同,我们称之为重载函数。 3.1.1不允许两个函数除了返回类型外所有的要素都相同。(这也是很好解释的) 3.1.2 有默认参数的重载测试 3.1.3 忽略了顶层const的重载 NOTE: 1、局部变量不能做默认实参。 2、重载函数的指针,指针类型
阅读全文
摘要:今天来分析测试一下这个很多人迷糊的地方,因为有些老师在这个地方讲得有待商榷。 一种常见说法是:无符号和有符号数进行运算时,类型被提升为无符号类型。 这也是我当初听老师讲课时的说法。 test1: ch类型提升为unsigned int,-10的二进制补码是个很大的正整数,减去5大于0,所以输出 这里
阅读全文