06 2017 档案

摘要:运算符重载的格式为: 一.在类里面实例运行符重载 运行结果: 6.7 + 9.5i 1.运算符重载其实就是定义一个函数,在函数体内实现想要的功能,当用到该运算符时,编译器会自动调用这个函数。也就是说,运算符重载是通过函数实现的,它本质上是函数重载。 2.operator是关键字,专门用于定义重载运算 阅读全文
posted @ 2017-06-30 14:54 夜行过客 阅读(345) 评论(0) 推荐(0) 编辑
摘要:使用 string 类需要包含头文件<string>,下面的例子介绍了几种定义 string 变量(对象)的方法: 一.length() 返回字符串长度 注意: 与C不同,string末尾没有'\0'字符,所以length返回的是字符串的真实长度,而不是长度+1 二.c_str() 转换为C风格的字 阅读全文
posted @ 2017-06-30 10:47 夜行过客 阅读(517) 评论(0) 推荐(0) 编辑
摘要:一个类中可以有 public、protected、private 三种属性的成员,通过对象可以访问 public 成员,只有本类中的函数可以访问本类的 private 成员。现在,我们来介绍一种例外情况——友元(friend)。借助友元(friend),可以使得其他类中的成员函数以及全局范围内的函数 阅读全文
posted @ 2017-06-30 09:47 夜行过客 阅读(367) 评论(0) 推荐(0) 编辑
摘要:typeid可用来判断类型是否相等: 例如有下面的定义: 阅读全文
posted @ 2017-06-29 14:13 夜行过客 阅读(330) 评论(0) 推荐(0) 编辑
摘要:一.基本语法 在C++中,可以将虚函数声明为纯虚函数,语法格式为: 纯虚函数没有函数体,只有函数声明,在虚函数声明的结尾加上=0,表明此函数为纯虚函数。 最后的=0并不表示函数返回值为0,它只起形式上的作用,告诉编译系统“这是纯虚函数”。 包含纯虚函数的类称为抽象类(Abstract Class)。 阅读全文
posted @ 2017-06-28 14:29 夜行过客 阅读(364) 评论(0) 推荐(0) 编辑
摘要:一.虚函数使用的注意事项 1.只需要在虚函数的声明处加上 virtual 关键字,函数定义处可以加也可以不加。 2.为了方便,你可以只将基类中的函数声明为虚函数,这样所有子类中具有遮蔽(覆盖)关系的同名函数都将自动成为虚函数。 3. 当在基类中定义了虚函数时,如果派生类没有定义新的函数来遮蔽此函数, 阅读全文
posted @ 2017-06-28 09:19 夜行过客 阅读(425) 评论(0) 推荐(0) 编辑
摘要:一.产生背景 先看下面的例子: 运行结果: 王志刚今年23岁了,是个无业游民。赵宏佳今年45岁了,是个无业游民。 我们直观上认为,如果指针指向了派生类对象,那么就应该使用派生类的成员变量和成员函数,这符合人们的思维习惯。但是本例的运行结果却告诉我们,当基类指针 p 指向派生类 Teacher 的对象 阅读全文
posted @ 2017-06-27 15:55 夜行过客 阅读(413) 评论(0) 推荐(0) 编辑
摘要:一.产生背景 先看下列一份代码: 运行: 编译器报错:“reference to 'm_a' is ambiguous”,说明m_a变量指代不清,编译器不知道该为哪个m_a赋值,事实上,B和C均继承于A,所以B和C中均有m_a这个变量,此时在D中为m_a赋值,就搞不清楚究竟是给B中的m_a赋值还是给 阅读全文
posted @ 2017-06-27 10:51 夜行过客 阅读(279) 评论(0) 推荐(0) 编辑
摘要:一.继承的基本语法 继承的基本语法为: 在本例中,class 后面的“Student”是新声明的子类,冒号后面的“People”是已经存在的基类。在“People”之前有一关键宇 public,用来表示是公有继承。继承方式包括 public(公有的)、private(私有的)和 protected( 阅读全文
posted @ 2017-06-26 10:06 夜行过客 阅读(382) 评论(0) 推荐(0) 编辑
摘要:(重要)使用引用的一些注意点: 1.引用不能绑定临时数据,也不能绑定任何无法获取内存地址的常量,表达式,或值,常引用除外。 第一种写法:(错误) 第二种写法: 第三种写法(正确) 第四种写法:(正确) 为什么加了const就可以?这是因为将常引用绑定到临时数据时,编译器采取了一种妥协机制:编译器会为 阅读全文
posted @ 2017-06-23 11:34 夜行过客 阅读(402) 评论(0) 推荐(0) 编辑
摘要:本文转自:http://www.cnblogs.com/skywang12345/archive/2013/05/23/3094037.html 本文介绍JNI的数据类型。NDK中关于JNI数据类型的定义都在jni.h中,大家可以参考jni.h。jni.h在ndk中的路径参考: 1 基本数据类型 为 阅读全文
posted @ 2017-06-23 10:46 夜行过客 阅读(323) 评论(0) 推荐(0) 编辑
摘要:本文转自: http://www.cnblogs.com/skywang12345/archive/2013/05/23/3094250.html 本文主要介绍如何将JNI导入到真机进行调试。下面以MyNdk工程来说明。 1 将.so文件导入到手机中 将MyNdk工程的libhello_jni.so 阅读全文
posted @ 2017-06-23 10:26 夜行过客 阅读(305) 评论(0) 推荐(0) 编辑
摘要:本文转自:http://www.cnblogs.com/skywang12345/archive/2013/05/23/3092812.html 本文主要介绍在ndk中添加log的方法。然后,我们就可以通过log去调试ndk。 1 添加ndk对log支持 若需要添加ndk对log的支持,只需要通过以 阅读全文
posted @ 2017-06-23 10:19 夜行过客 阅读(370) 评论(0) 推荐(0) 编辑
摘要:本文转自:http://www.cnblogs.com/skywang12345/archive/2013/05/23/3092491.html 前面总结了静态实现JNI的方法,本文介绍如何动态实现JNI:JNI在加载时,会调用JNI_OnLoad,而卸载时会调用JNI_UnLoad,所以我们可以通 阅读全文
posted @ 2017-06-23 09:59 夜行过客 阅读(233) 评论(0) 推荐(0) 编辑
摘要:本文转自:http://www.cnblogs.com/skywang12345/archive/2013/05/23/3095013.html JNI包括两种实现方法:静态和动态。两种方法的区别如下: 静态:先由Java得到本地方法的声明,然后再通过JNI实现该声明方法。 动态:先通过JNI重载J 阅读全文
posted @ 2017-06-23 09:34 夜行过客 阅读(285) 评论(0) 推荐(0) 编辑
摘要:本文转自:http://www.cnblogs.com/skywang12345/archive/2013/05/23/3095013.html 本文主要介绍“JNI”、“Android NDK”以及“如何搭建Android NDK开发环境” 1 JNI介绍 JNI是Java Native Inte 阅读全文
posted @ 2017-06-23 09:23 夜行过客 阅读(253) 评论(0) 推荐(0) 编辑
摘要:函数调用是有时间和空间开销的。程序在执行一个函数之前需要做一些准备工作,要将实参、局部变量、返回地址以及若干寄存器都压入栈中,然后才能执行函数体中的代码;函数体中的代码执行完毕后还要清理现场,将之前压入栈中的数据都出栈,才能接着执行函数调用位置以后的代码。 如果函数体代码比较多,需要较长的执行时间, 阅读全文
posted @ 2017-06-21 16:45 夜行过客 阅读(408) 评论(0) 推荐(0) 编辑
摘要:在类中,如果你不希望某些数据被修改,可以使用const关键字加以限定。const 可以用来修饰成员变量、成员函数以及对象。 一 const 成员变量 const 成员变量的用法和普通 const 变量的用法相似,只需要在声明时加上 const 关键字。初始化 const 成员变量只有一种方法,就是通 阅读全文
posted @ 2017-06-21 16:24 夜行过客 阅读(324) 评论(0) 推荐(0) 编辑
摘要:一.this关键字 this是一个指针,可用其访问成员变量或成员函数 下面是使用this的一个完整示例: 运行结果: 李华的年龄是16,成绩是96.5 this 只能用在类的内部,通过 this 可以访问类的所有成员,包括 private、protected、public 属性的。本例中成员函数的参 阅读全文
posted @ 2017-06-21 10:57 夜行过客 阅读(537) 评论(0) 推荐(0) 编辑
摘要:一.构造函数 类似于java,C++中也有构造函数的概念,相关用法如下: 1.1 构造函数的定义 运行结果: 小明的年龄是15,成绩是92.5李华的年龄是16,成绩是96 1.2 构造函数的重载 构造函数同样也支持重载操作: 运行结果: 小明的年龄是15,成绩是92.5成员变量还未初始化李华的年龄是 阅读全文
posted @ 2017-06-20 16:25 夜行过客 阅读(722) 评论(0) 推荐(0) 编辑
摘要:类是创建对象的模板,一个类可以创建多个对象,每个对象都是类类型的一个变量;创建对象的过程也叫类的实例化。每个对象都是类的一个具体实例(Instance),拥有类的成员变量和成员函数。 一.类的定义 一个简单的类的定义: class是 C++ 中新增的关键字,专门用来定义类。Student是类的名称; 阅读全文
posted @ 2017-06-20 15:22 夜行过客 阅读(458) 评论(0) 推荐(0) 编辑
摘要:在C语言中,动态分配内存用 malloc() 函数,释放内存用 free() 函数。如下所示: 在C++中,这两个函数仍然可以使用,但是C++又新增了两个关键字,new 和 delete:new 用来动态分配内存,delete 用来释放内存。 用 new 和 delete 分配内存更加简单: new 阅读全文
posted @ 2017-06-20 14:53 夜行过客 阅读(269) 评论(0) 推荐(0) 编辑
摘要:一个中大型软件往往由多名程序员共同开发,会使用大量的变量和函数,当有两个人都同时定义了一个名字相同的全局变量或函数的时候,若是把他们的代码整合在一块编译,此时编译器就会提示变量或函数重复定义,C++为了解决这个问题,便引用了命名空间(namespace)的概念。 一.语法格式 namespace 是 阅读全文
posted @ 2017-06-20 14:46 夜行过客 阅读(405) 评论(0) 推荐(0) 编辑
摘要:在C++中,const 的含义并没有改变,只是对细节进行了一些调整,以下是最主要的两点。 一.C++中的 const 更像编译阶段的 #define 先来看下面的两条语句: 我们知道,变量是要占用内存的,即使被 const 修饰也不例外。m、n 两个变量占用不同的内存,int n = m;表示将 m 阅读全文
posted @ 2017-06-20 11:21 夜行过客 阅读(388) 评论(0) 推荐(0) 编辑
摘要:本文转自:http://blog.csdn.net/xingjiarong/article/details/47656339 利用关键字extern,可以在一个文件中引用另一个文件中定义的变量或者函数,下面就结合具体的实例,分类说明一下。 一、引用同一个文件中的变量 如果按照这个顺序,变量 num在 阅读全文
posted @ 2017-06-16 10:59 夜行过客 阅读(256) 评论(0) 推荐(0) 编辑
摘要:上午在linux环境下,使用QT编译一段C++代码,出现下列错误: 最近在stackoverflow上找到了答案: i was also having the same problem so what i did is For linux and then closed the qt creator 阅读全文
posted @ 2017-06-16 10:36 夜行过客 阅读(4555) 评论(0) 推荐(0) 编辑
摘要:本文转自:http://blog.csdn.net/keyeagle/article/details/6708077 google了近三页的关于C语言中static的内容,发现可用的信息很少,要么长篇大论不知所云要么在关键之处几个字略过,对于想挖掘底层原理的初学者来说参考性不是很大。所以,我这篇博文 阅读全文
posted @ 2017-06-15 14:30 夜行过客 阅读(247) 评论(0) 推荐(0) 编辑
摘要:先来看下面的例子: 编译,没有问题,但是一运行,程序直接报错 问题出现在 t1.ps1->age = 100; 这一行,因为我们在给结构体指针Student的age属性赋值时,并未给ps1指针开辟内存空间,所以相当于给一个空指针赋值,因此程序crash掉了。 下面是修改后的代码: 我们在给ps1的a 阅读全文
posted @ 2017-06-06 19:48 夜行过客 阅读(9849) 评论(0) 推荐(2) 编辑
摘要:第一套API函数 动态库代码:DJSocketClient.c 使用该动态库 阅读全文
posted @ 2017-06-06 13:54 夜行过客 阅读(253) 评论(0) 推荐(0) 编辑
摘要:一.VS2013 创建动态库 1.1 新建项目 1.2.在Win32应用程序向导对话框上勾选“DLL”和“空项目”复选框,点完成 1.3 .添加对应的.C文件和.h文件 1.4 在.h文件中添加如下代码 最终的.h和.c文件如下: seqlist.h seqlist.c 1.5 点击菜单栏上的“生成 阅读全文
posted @ 2017-06-05 21:04 夜行过客 阅读(2950) 评论(0) 推荐(1) 编辑
摘要:下午使用VS 2013调试程序时,发现弹出了下列的错误弹框: 网上搜索之后发现是缺失了动态链接库(.dll)文件所致,因此只需要把相应的动态链接库文件放置到指定的目录即可。 另:64位系统用户需要注意,32位的DLL文件放在“C:\Windows\SysWOW64”,64位的DLL文件放在“C:\W 阅读全文
posted @ 2017-06-05 20:01 夜行过客 阅读(6349) 评论(0) 推荐(0) 编辑
摘要:以VS2013为例: 1.新建项目 2.选择"Win32控制台应用程序",点确定 勾选“控制台应用程序”和“空项目”选项,点击完成,然后新建一个C文件,在文件头上右键: 3.粘贴准备好的动态库文件 4.右键项目名称,选择“属性”菜单 5.在弹出的菜果中选择“链接器”菜单 6.选择“链接器”下的“输入 阅读全文
posted @ 2017-06-05 15:50 夜行过客 阅读(1727) 评论(0) 推荐(0) 编辑
摘要:一.fgetc和fputc 示例代码 二.fputs和fgets 阅读全文
posted @ 2017-06-01 10:51 夜行过客 阅读(260) 评论(0) 推荐(0) 编辑
摘要:学习C语言的,文件操作,大都会用到它。 它的函数原型: 这个函数的返回值,是返回读取的一个字节。如果读到文件末尾返回EOF。EOF其实就是一个宏#define EOF (-1)表示-1.既然返回的是一个字节,为什么返回值确用4字节的int表示,不用unsigned char这1个字节类型表示,或直接 阅读全文
posted @ 2017-06-01 10:48 夜行过客 阅读(2820) 评论(0) 推荐(1) 编辑

点击右上角即可分享
微信分享提示