
C/C++
文章平均质量分 62
naruto0001
这个作者很懒,什么都没留下…
展开
-
函数指针
本文系转载,http://blog.chinaunix.net/uid-25524263-id-2888273.html 一 通常的函数调用 一个通常的函数调用的例子://自行包含头文件void MyFun(int x);//此处的申明也可写成:void MyFun(int );int main(int argc, char* argv[]){转载 2013-07-07 17:39:19 · 632 阅读 · 0 评论 -
_cdecl、_stdcall、_fastcall和_thiscall整理
1._cdecl是C Declaration的缩写,表示C语言默认的函数调用方法:所有参数 从右到左依次入栈,这些参数由调用者清除,称为手动清栈(由调用者把参数弹出栈)。对于传送参数的内存栈是由调用者来维护的(正因为如此,实现可变参数的函数只能使用该调用约定)。被调用函数无需要求调用者传递多少参数,调用者传递过多或者过少的参数,甚至完全不同的参数都不会产生编译阶段的错误。 _cdecl是转载 2013-07-22 12:24:29 · 747 阅读 · 0 评论 -
Windows程序设计_Chap03_窗口与消息_学习笔记
Windows程序设计_Chap03_窗口与消息_学习笔记――By: Neicole(2013.06.07)01. 开篇 《Windows程序设计》的第3章,讲述了在Windows编程中很基础同时也是很重要的内容,第一个是Windows窗口是什么,怎么创建,第二个是Windows中的消息,Windows的消息机制。这次学习笔记,以窗口和Windows消息转载 2013-07-20 17:02:01 · 947 阅读 · 0 评论 -
c++智能指针
一、简介由于 C++ 语言没有自动内存回收机制,程序员每次 new 出来的内存都要手动 delete。程序员忘记 delete,流程太复杂,最终导致没有 delete,异常导致程序过早退出,没有执行 delete 的情况并不罕见。用智能指针便可以有效缓解这类问题,本文主要讲解参见的智能指针的用法。包括:std::auto_ptr、boost::scoped_ptr、boost::s转载 2013-07-05 14:45:54 · 644 阅读 · 0 评论 -
c++ 虚函数 纯虚函数
虚函数的调用原理多态性给我们带来了好处:多态使得我们可以通过基类的引用或指针来指明一个对象(包含其派生类的对象),当调用函数时可以自动判断调用的是哪个对象的函数。一个函数说明为虚函数,表明在继承的类中重载这个函数时,当调用这个函数时应当查看以确定调用哪个对象的这个函数。普通函数的处理:一个特定的函数都会映射到特定的代码,无论时编译阶段还是连接阶段,编译器都能计算转载 2013-07-05 11:04:43 · 924 阅读 · 0 评论 -
static_cast & dynamic_cast
static_cast一般用来将枚举类型转换成整型,或者整型转换成浮点型。也可以用来将指向父类的指针转换成指向子类的指针。做这些转换前,你必须确定要转换的数据确实是目标类型的数据,因为static_cast不做运行时的类型检查以保证转换的安全性。也因此,static_cast不如dynamic_cast安全。对含有二义性的指针,dynamic_cast会转换失败,而static_cast却直接且粗转载 2013-07-04 15:35:12 · 765 阅读 · 0 评论 -
字节对齐
【转载】原文出处:http://blog.youkuaiyun.com/21aspnet/article/details/6729724文章最后本人做了一幅图,一看就明白了,这个问题网上讲的不少,但是都没有把问题说透。 一、概念 对齐跟数据在内存中的位置有关。如果一个变量的内存地址正好位于它长度的整数倍,他就被称做自然对齐。比如在32位cpu下,假设一转载 2013-07-19 11:46:44 · 684 阅读 · 0 评论 -
堆排序
本章开始介绍了堆的基本概念,然后引入最大堆和最小堆的概念。全章采用最大堆来介绍堆的操作,两个重要的操作是调整最大堆和创建最大堆,接着着两个操作引进了堆排序,最后介绍了采用堆实现优先级队列。原地(in place)排序就是指不申请多余的空间来进行的排序,就是在原来的排序数据中比较和交换的排序。属于原地排序的是:希尔排序、冒泡排序、插入排序、选择排序、堆排序。1、堆转载 2013-07-12 12:30:31 · 889 阅读 · 0 评论 -
stl::string 函数备份
string类的构造函数:string(const char *s); //用c字符串s初始化string(int n,char c); //用n个字符c初始化此外,string类还支持默认构造函数和复制构造函数,如string s1;string s2="hello";都是正确的写法。当构造的string太长而无法表达时会抛出length_error异常string类的字符操作:c转载 2013-07-08 11:28:33 · 643 阅读 · 0 评论 -
浅谈C++容器
在面向对象的语言中,大多引入了容器的概念。那么 什么 是 容器?实质上就是一组相同类型对象的集合,但是它又不仅仅像数组那样简单,它实现了比数组更复杂的数据结构,当然也实现了比数组更强大的功能。C++ 标准模板库里提供了10 种通用的容器类,它基本上可以解决程序中遇到的大多数问题。 现在我主要来说明这10 种通用容器的功能用途以及相互之间的相同与异同。但是在这里,我不提倡一开始就着手从这转载 2013-07-08 12:02:21 · 718 阅读 · 0 评论 -
c++中什么类型的成员变量只能在构造函数的初始化列表中进行
1 好多书籍都建议我们直接使用初始化列表为成员进行初始化,为什么呢?我想原因有二:①考虑到效率②有些成员不得不这么做(const,引用)为什么使用初始化列表就效率呢?其实也不一定,对于内置类型,在函数体内赋值和在初始化列表中初始化两者的效率是等同的。但是为了美观和一致性的问题,《Effective C++》作者建议我们还是用初始化列表进行。但是这也不是在所有情况下都是必须转载 2013-07-22 18:22:35 · 2576 阅读 · 1 评论