指向对象的常指针 将指向对象的指针变量声明为const型,并使之初始化,这样指针值始终保持为其初始值,不能改变. Time t1(10,12,15),t2; Time * const ptr1=&t1; ptr1=&t2; 定义指向对象的常指针的一般形式为 类名    *    const    指针变量=对象地址; 注意应该在定义指针变量时使之初始化 指向对象的常指针变量的值不能被改变,即始终指向同一个对象,但可以改变其所指向对象中的数据成员(非const型)的值. 往往用常指针作为函数…
const修饰基本数据类型 #include <iostream> using namespace std; void main(){ const int a = 1; const char b = 'k'; const float c = 3.14f; //a = 2; //b = 'n'; //c = 1.2f; } const修饰基本类型表示这些类型为常量,不能再修改或赋值.还有需要注意的是3.14默认为double类型,如果用float变量保存的话应该写成float c = 3.14f…
Android手机操作系统既然是开源的操作系统.那么在具体的文件夹中就会存放着各种相关功能的开源代码.我们在使用的时候可以根据这些源代码进行相应的修改就能轻松的完成我们所需的功能.在这里大家就一起来看看Android智能 指针的相关源码解读以及应用方法. 在Android的源代码中,经常会看到形如:sp< xxx>.wp< xxx>这样的类型定义,这其实是Android中的智能指针.智能指针是C++中的一个概念,通过基于引用计数的方法,解决对象的自动释放的问题.在C++编程中,有两…
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6786239 Android 系统的运行时库层代码是用C++来编写的,用C++来写代码最容易出错的地方就是指针了,一旦使用不当,轻则造成内存泄漏,重则造成系统崩溃.不过系统为 我们提供了智能指针,避免出现上述问题,本文将系统地分析Android系统智能指针(轻量级指针.强指针和弱指针)的实现原理. 在使用C++来编写代码的过程中,指针使用不当造成…
Android系统的智能指针(轻量级指针.强指针和弱指针)的实现原理分析 分类: Android 2011-09-23 00:59 31568人阅读 评论(42) 收藏 举报 androidclassdebuggingdeleteobject Android系统的运行时库层代码是用C++来编写的,用C++来写代码最容易出错的地方就是指针了,一旦使用不当,轻则造成内存泄漏,重则造成系统 崩溃.不过系统为我们提供了智能指针,避免出现上述问题,本文将系统地分析Android系统智能指针(轻量级指针.强…
 转载:http://www.cnblogs.com/felixYeou/archive/2008/08/27/1277250.html 快速导航 一. 回顾历史二. 智能指针简介三. Delphi中的interface四. Delphi中智能指针的实现五. interface + 泛型 = 强类型的智能指针!六. 智能指针与集合七. 注意事项八. 总结 本随笔所有源代码打包下载 一.回顾历史 在c++中,对象可以创建在栈里,也可以创建在堆里.如: class CTestClass { publ…
前言 C++里面的四个智能指针: auto_ptr, unique_ptr,shared_ptr, weak_ptr 其中后三个是C++11支持,并且第一个已经被C++11弃用. C++11智能指针介绍 智能指针主要用于管理在堆上分配的内存,它将普通的指针封装为一个栈对象.当栈对象的生存周期结束后,会在析构函数中释放掉申请的内存,从而防止内存泄漏.C++ 11中最常用的智能指针类型为shared_ptr,它采用引用计数的方法,记录当前内存资源被多少个智能指针引用.该引用计数的内存在堆上分配.当新…
shared_ptr 当指向对象的std::shared_ptr一创建,被管理对象的控制块SharedPtrControlBlock(参考下面的图)就建立了. 被管理的对象的控制块中有引用计数(reference count),当引用计数为0时,被管理的对象会被销毁. 控制块的创建会遵循下面几条规则: std::make_shared会创建控制块 从 std::unique_ptr 上构造出 std::shared_ptr的时候,会创建控制块 从原始指针上构造 std::shared_ptr的时…
c++为什么要引入智能指针? C/C++ 语言最为人所诟病的特性之一就是存在内存泄露问题,因此后来的大多数语言都提供了内置内存分配与释放功能,有的甚至干脆对语言的使用者屏蔽了内存指针这一概念.这里不置贬褒,手动分配内存与手动释放内存有利也有弊,自动分配内存和自动释放内存亦如此,这是两种不同的设计哲学.有人认为,内存如此重要的东西怎么能放心交给用户去管理呢?而另外一些人则认为,内存如此重要的东西怎么能放心交给系统去管理呢?在 C/C++ 语言中,内存泄露的问题一直困扰着广大的开发者,因此各类库和工…
面试的时候,我们经常会被问到如何自己动手实现智能指针auto_ptr.今天我就一边参考STL库中的源代码,一边将auto_ptr的实现敲一遍. auto_ptr归根到底是一个模版类,那么这个类要实现哪些功能呢?如下: /* 一个智能指针应该有以下操作: 1.Auto_ptr<T> ap;      //创建名为ap的为绑定Auto_ptr对象 2.Auto_ptr<T> ap(p);   //创建 ap 的Auto_ptr对象,ap用友指针 p 指向的对象.该构造函数为explic…