随笔分类 -  C++

C++ 基础
摘要:from://http://blog.csdn.net/xuyuanfan/article/details/9935533在C++中是没有接口的,要真正实现java中的interface功能,需要使用virtual函数的多态继承机制。这里就细讲一下C++中的virtual关键字的用法。首先设计3个类,包括book、good_book和bad_book。book为基类,而good_book和bad_book继承于book类。1、book类:包括一个成员变量name和一个虚成员函数getName2、good_book类:只有一个成员函数getName3、bad_book类:只有一个成员函数getN 阅读全文
posted @ 2013-09-11 10:13 wanqi 阅读(1442) 评论(0) 推荐(0) 编辑
摘要:from://http://ceeji.net/blog/c%E7%AC%94%E8%AE%B0%EF%BC%9A%E5%A4%B4%E6%96%87%E4%BB%B6%E7%9A%84%E4%BD%9C%E7%94%A8%E5%92%8C%E5%86%99%E6%B3%95/在 C++ 中有一个很重要的概念就是头文件。之所以在 C++ 中要使用头文件,最主要的原因是 C++ 的同一个项目可能有多个源代码文件,要命的是这些源代码是分别单独编译的。也就是说,在编译其中一个文件时,编译器并不知道其它文件中定义的内容,如类、全局变量等。这就要求我们必须在要使用某个类、函数或变量的每个文件中声明它,否 阅读全文
posted @ 2013-09-11 09:31 wanqi 阅读(65918) 评论(0) 推荐(4) 编辑
摘要:from://http://www.cnblogs.com/qlwy/archive/2011/08/25/2153584.htmlC++继承:公有,私有,保护公有继承(public)、私有继承(private)、保护继承(protected)是常用的三种继承方式。1. 公有继承(public)公有继承的特点是基类的公有成员和保护成员作为派生类的成员时,它们都保持原有的状态,而基类的私有成员仍然是私有的,不能被这个派生类的子类所访问。2. 私有继承(private)私有继承的特点是基类的公有成员和保护成员都作为派生类的私有成员,并且不能被这个派生类的子类所访问。3. 保护继承(protecte 阅读全文
posted @ 2013-08-15 15:41 wanqi 阅读(673) 评论(0) 推荐(0) 编辑
摘要:c++ 里面struct可以new,另外:C++中,struct关键字与Class关键字基本是一样的,但是,有两点不同 1 struct定义的数据类型里面所有成员默认级别都是共有的,而class里面所有成员默认级别都是私有的 2 在模板定义中,只能用class 或者typename 而不能用struct提问者评价讲的很好,很清楚,感谢高人http://blog.sina.com.cn/s/blog_3fabd4ba0100od67.html结构体可以看做是一种自定义的数据类型,它还有一个很重要的特性,就是结构体可以相互嵌套使用,但也是有条件的,结构体可以包含结构体指针,但绝对不能在结构... 阅读全文
posted @ 2013-07-12 13:52 wanqi 阅读(16677) 评论(0) 推荐(0) 编辑
摘要:研究Android的时候,经常会遇到sp、wp的东西,网上一搜,原来是android封装了c++中对象回收机制。说明:1. 如果一个类想使用智能指针,那么必须满足下面两个条件: a. 该类是虚基类RefBase的子类或间接子类 b. 该类必须定义虚构造函数。如virtual ~MyClass();2. 本文以类BBinder来进行说明,其余类使用sp或wp的情况类似3. 代码路径:frameworks/base/libs/utils/RefBase.cpp frameworks/base/include/utils/RefBase.h一、calss BBinder类说明 class RefBa 阅读全文
posted @ 2012-05-08 17:16 wanqi 阅读(11967) 评论(0) 推荐(2) 编辑
摘要:深入C++的new分类:C++2011-04-10 17:1352人阅读评论(0)收藏举报转自:http://www.builder.com.cn/2008/0104/696370.shtml“new”是C++的一个关键字,同时也是操作符。关于new的话题非常多,因为它确实比较复杂,也非常神秘,下面我将把我了解到的与new有关的内容做一个总结。new的过程当我们使用关键字new在堆上动态创建一个对象时,它实际上做了三件事:获得一块内存空间、调用构造函数、返回正确的指针。当然,如果我们创建的是简单类型的变量,那么第二步会被省略。假如我们定义了如下一个类A:class A{ int i;publi 阅读全文
posted @ 2012-05-07 10:04 wanqi 阅读(261) 评论(0) 推荐(0) 编辑
摘要:堆和栈的区别一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)—由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap)—一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(静态区)(static)—,全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。-程序结束后有系统释放4、文字常量区—常量字符串就是放在这里的。程序结束后 阅读全文
posted @ 2012-05-07 10:04 wanqi 阅读(5363) 评论(0) 推荐(1) 编辑