C++
文章平均质量分 65
国境之南Fantasy
Coder
展开
-
引用和指针~ 较详解
from: http://hong.hjh.blog.163.com/blog/static/1306390692010103115450161/写在前面指针和引用形式上很好区别,但是他们似乎有相同的功能,都能够直接引用对象,对其进行直接的操作。但是什么时候使用指针?什么时候使用引用呢?这两者很容易混淆,在此我详细介绍一下指针和引用,力争将最真实的一面展现给大家。如果我转载 2012-08-11 15:45:38 · 765 阅读 · 0 评论 -
malloc 原理 实现机制 vs free 原理 实现机制
malloc原型:extern void *malloc(unsigned int num_bytes);用法:#include 或#include功能:分配长度为num_bytes字节的内存块说明:如果分配成功则返回指向被分配内存的指针,否则返回空指针NULL。当内存不再使用时,应使用free()函数将内存块释放。malloc的语法是:指针名=(数据类型*)m转载 2016-10-01 19:56:55 · 2040 阅读 · 0 评论 -
C++中引用传递与指针传递区别
从概念上讲。指针从本质上讲就是存放变量地址的一个变量,在逻辑上是独立的,它可以被改变,包括其所指向的地址的改变和其指向的地址中所存放的数据的改变。而引用是一个别名,它在逻辑上不是独立的,它的存在具有依附性,所以引用必须在一开始就被初始化,而且其引用的对象在其整个生命周期中是不能被改变的(自始至终只能依附于同一个变量)。在C++中,指针和引用经常用于函数的参数传递,然而,指针传递参数转载 2016-09-28 21:21:32 · 368 阅读 · 0 评论 -
C++中const用法总结
. const修饰普通变量和指针const修饰变量,一般有两种写法:const TYPE value;TYPE const value;这两种写法在本质上是一样的。它的含义是:const修饰的类型为TYPE的变量value是不可变的。对于一个非指针的类型TYPE,无论怎么写,都是一个含义,即value只不可变。例如:转载 2012-11-09 19:42:18 · 641 阅读 · 0 评论 -
HashMap和Hashtable的区别
导读: 1 HashMap不是线程安全的 hastmap是一个接口 是map接口的子接口,是将键映射到值的对象,其中键和值都是对象,并且不能包含重复键,但可以包含重复值。HashMap允许null key和null value,而hashtable不允许。2 HashTable是线程安全的一个Collection。HashM转载 2012-11-09 19:13:31 · 656 阅读 · 0 评论 -
C++ Placement New
from:http://hubeihuyanwei.blog.163.com/blog/static/28205284201171722359640/placement new是重载operator new的一个标准、全局的版本,它不能被自定义的版本代替(不像普通的operator new和operator delete能够被替换成用户自定义的版本)。它的原转载 2012-10-14 21:05:52 · 532 阅读 · 0 评论 -
http://hi.baidu.com/pkucbj/item/37e1e8de1ffc7d57d63aae82
from http://mylovejsj.blog.163.com/blog/static/3867397520086233913317/--构造函数调用层次会导致一个有趣的两难选择。试想;如果我们正在构造函数中并且调用虚函数,那么会发生什么现象呢?对于普通的成员函数,虚函数的调用是在运行时决定的,这是因为编译时并不能知道这个对象是属于这个成员函数所在的那个类,还是属于由它派生出转载 2012-10-13 00:18:07 · 1601 阅读 · 0 评论 -
C++ 对象的内存布局(上)
C++ 对象的内存布局(上) 陈皓http://blog.csdn.net/haoel 点击这里查看下篇>>>前言 07年12月,我写了一篇《C++虚函数表解析》的文章,引起了大家的兴趣。有很多朋友对我的文章留了言,有鼓励我的,有批评我的,还有很多问问题的。我在这里一并对大家的留言表示感谢。这也是我为什么再写一篇续言的原因。因为,在上一篇文章中,我用了的示例都是非转载 2012-09-23 14:00:09 · 517 阅读 · 0 评论 -
C结构体、C结构体 和 C++类的区别
from : http://hi.baidu.com/smallbigwang/item/137fff9785a82bb3cd80e58e1.C的结构体和C++结构体的区别 1.1 C的结构体内不允许有函数存在,C++允许有内部成员函数,且允许该函数是虚函数。所以C的结构体是没有构造函数、析构函数、和this指针的。 1.2 C的结构体对内部成员变量的访问权限只转载 2012-10-11 15:10:03 · 896 阅读 · 0 评论 -
浅议 Dynamic_cast 和 RTTI
from:http://www.cnblogs.com/zhyg6516/archive/2011/03/07/1971898.html问题: Static_cast 与 Dynamic_cast的区别来自书本上的解释: 用 static_cast ( expression ) 1. static_cast(expression) The sta转载 2012-09-16 00:29:43 · 666 阅读 · 0 评论 -
C++虚函数表汇总
一般来说,对于开发者我们只需要知道虚函数的使用方法,以及虚函数表的存在即可。但面试时往往会遇到更细节的问题,比如让你实现一个虚函数机制,虽然不太实用,总归了解些底层知识也是件好事。但如果有人苦苦相逼一定要拿这个刷人,你就去骂他吧,你才是写编译器的,你们全家都是写编译器的。唉,我有些失态了...1. 虚函数与虚函数表基本知识这里有一篇介绍,只需看前两页,各种配图,很形转载 2012-09-09 01:23:02 · 659 阅读 · 0 评论 -
拷贝构造函数
from:http://baike.baidu.com/view/1266959.htm 拷贝构造函数求助编辑百科名片 拷贝构造函数拷贝构造函数,是一种特殊的构造函数,它由编译器调用来完成一些基于同一类的其他对象的构建及初始化。其唯一的参数(对象的引用)是不可变的(const类型)。此函数经常用在函数调用时用户定转载 2012-09-08 20:47:12 · 696 阅读 · 0 评论 -
无名对象
无名对象典型的三种用法: C++代码 void fn(Student& s); void main() { Student& refs = Student("A"); //左侧纯属举例,一般都是有名:refs = s; Student s = Student("B"); //即Student s("B");转载 2012-08-16 16:19:45 · 2781 阅读 · 4 评论 -
STL中改变map的默认比较方式
大家知道,STL中的map底层是用红黑树实现的,其泛型原型如下:template class _Key, class _Tp, class _Compare, class _Alloc>class map { ...... }其中_Key表示比较的键(key),_Tp表示值(value),_Compare表示比较方式,_转载 2012-08-16 21:36:30 · 897 阅读 · 0 评论 -
C++ STL 重载运算符小于号的巧妙
from: http://blog.csdn.net/dpfordor/article/details/1958077一天,无意中看到如下类定义: class Foo { int a1; int a2;转载 2012-08-16 15:16:19 · 6350 阅读 · 2 评论 -
C++ 仿函数(functor)
from: http://hi.baidu.com/laodun/item/a8e63f32fd732084c2cf29ce 所谓的仿函数(functor),是通过重载()运算符模拟函数形为的类。 因此,这里需要明确两点: 1 仿函数不是函数,它是个类; 2 仿函数重载了()运算符,使得它的对你可以像函数那样子调用(代码的形式好像是在调用函数)。 看转载 2012-08-16 15:48:06 · 3152 阅读 · 0 评论 -
C++ 虚函数表解析
from: http://blog.csdn.net/haoel/article/details/1948051前言 C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。转载 2012-08-12 00:01:23 · 496 阅读 · 0 评论 -
浅谈 C++ 中的 new/delete 和 new[]/delete[]
在 C++ 中,你也许经常使用 new 和 delete 来动态申请和释放内存,但你可曾想过以下问题呢?new 和 delete 是函数吗?new [] 和 delete [] 又是什么?什么时候用它们?你知道 operator new 和 operator delete 吗?为什么 new [] 出来的数组有时可以用 delete 释放有时又不行?…如果你对这些问题都有疑问的话,转载 2016-10-01 20:15:42 · 300 阅读 · 0 评论