c++
文章平均质量分 67
zhangmengjlu
这个作者很懒,什么都没留下…
展开
-
char * a, char ** a, char * a[], char a[][], char * a[][], char ** a[][], char * a [][][], and so on
本文测试环境 : X86-64 bit 架构的服务器CentOS x64 5.xgcc version 4.1.2 20080704指针和数组是C的比较难搞懂的知识点, 需要结合内存来学习, 非常感谢各位兄弟为我指点迷津.下面总结一下 : 首先说明一下C程序在运行时, 不同的内容或变量分别存储在什么地方?分了几块区域分别是, code转载 2013-03-24 22:47:14 · 519 阅读 · 0 评论 -
【转载】该用 Abstract Class 还是 Interface?
按三点答:先答属性:抽象类可以有普通成员变量,接口不行;然后答方法:抽象类有非抽象的方法和构造方法,并且修饰符可以是私有的,接口只能是抽象的方法,并且修饰符是public;最后说一句只能继承一个抽象类,但能实现多个接口。 在编写程序的时候我常常陷入纠结,一个抽象对象,到底应该定义成 抽象类(Abstract Class) 还是 接口(Interface) 呢?二者具有很大的相似转载 2013-04-22 20:59:35 · 460 阅读 · 0 评论 -
【转载】多态性——vptr和vtable
关于虚函数,需要知道:多态在C++中借助虚函数实现 多态只在指针或者引用上发生 虚函数机制(通常)借助虚指针vptr支持 虚函数地址保存在虚函数表中 一个类的所有对象共有一张vtbl vtbl由vptr指向,vptr保存在每一个对象中,多继承时可能有多个vptr vptr由构造函数(普通构造/copy构造)在对象初始化时隐式设定 多态性 (polymorphism) 是面向转载 2013-04-22 20:28:52 · 521 阅读 · 0 评论 -
传递可变参数
传递可变参数传统的c中,函数在调用时参数是通过值来传递的,这就是说函数的参数不具备返回值的能力。所以在传统的c中,如果需要函数的参数具有返回值的能力,往往是通过指针来实现的。比如,实现两整数变量值交换的c程序如下:void swapint(int *a,int *b){int temp;temp=*a;*a=*b;*b=tem原创 2013-04-07 18:05:59 · 470 阅读 · 0 评论 -
【转载】int*p[ ]与int(*p)[ ]的不同
1)int* p[2] 是一个指向int型的指针数组,即:p是包含两个元素的指针数组,指针指向的是int型。可以这样来用:#include using namespace std;int main(int argc, char* argv[]) {int* p[2];int a[3] = {1, 2, 3};int b[4] =转载 2013-04-22 22:22:14 · 400 阅读 · 0 评论 -
【转载】C++面试汇总
1.求下面函数的返回值( 微软)int func(x) { int countx =0; while(x) { countx ++; x = x&(x-1); } return countx; }假定x = 9999。 答案:8思路:将x转化为2进制,看含有的1的个数。 2. 什么是“引用”?申明和使用“引用”转载 2013-09-08 17:05:23 · 436 阅读 · 0 评论 -
priority_queue用法小结
1、stl中各种容器的自定义比较函数的方法,vector,list,set相类似,要定义一个比较类,类里面有比较成员函数 bool operator ()(const,const),并且return apriority_queue有些不同,主要表现在return a2、#include #include using namespace std;st原创 2013-09-20 19:43:14 · 478 阅读 · 0 评论