
C/C++
文章平均质量分 83
飞翔的鱼tsj
这个作者很懒,什么都没留下…
展开
-
二维数组和指向指针的指针
一道面试题引发的问题,首先要知道[]的优先级高于*,题目:char **p,a[6][8]; 问p=a是否会导致程序在以后出现问题?为什么?直接用程序说明:#includevoid main(){ char **p,a[6][8]; p = a; printf("\n");}编译,然后就会发现通不过,报错:错误 1 err转载 2015-04-22 15:39:59 · 433 阅读 · 0 评论 -
类的一般继承与虚继承
对于一般的继承,有三种继承方式,他们之间的区别如下:(1)公有继承方式: 基类成员对其对象的可见性与一般类及其对象的可见性相同,公有成员可见,其他成员不可见。这里保护成员与私有成员相同。 基类成员对派生类的可见性对派生类来说,基类的公有成员和保护成员可见,基类的公有成员和保护成员作为派生类的成员时,它们都保持原有的状态;基类的私有成员不可见,基类的私有成原创 2015-09-16 20:25:53 · 812 阅读 · 0 评论 -
多重继承与虚继承
参考书籍:《C++ Primer》、《Effective C++》 多重继承与虚继承一、 多重继承1.定义多个类:图1 多重继承的Panda层次 定义一个抽象 ZooAnimal 类保存所有动物园动物公共信息并提供公用接口,Bear 类将包含 Bear 科的独特信息,以此类推。除了实际的动物园动物类的之外,还有一些辅助转载 2015-09-16 19:44:22 · 496 阅读 · 0 评论 -
虚函数表指针、虚基类表指针
虚函数表指针、虚基类表指针对于虚函数表指针和虚基类表指针:当单继承且非虚继承时:每个含有虚函数的表只有一个虚函数表,所以只需要一个虚表指针即可;当多继承且非虚继承时:一个子类有几个父类则会有几个虚函数表,所以就有和父类个数相同的虚表指针来标识;总之,当时非虚继承时,不需要额外增加虚函数表指针。 当虚继承时:无论是单虚继承还是多虚继承,需要有一个虚基类原创 2015-09-16 20:30:07 · 1213 阅读 · 0 评论 -
C++中有了malloc/free 为什么还要new/delete
malloc 与free 是C++/C 语言的标准库函数,new/delete 是C++的运算符。它们都可用于申请动态内存和释放内存。对于非内部数据类型(内部数据类型是编译器本来就认识的,不需要用户自己定义。非内部数据类型不是编译器本来就认识的,需要用户自己定义才能让编译器识别。)的对象而言,光用maloc/free 无法满足动态对象的要求。对象在创建的同时要自动执行构造函数, 对转载 2015-09-16 17:05:06 · 1120 阅读 · 0 评论 -
sizeof() 类大小,空类大小
一个类的实例化对象所占空间的大小? 注意不要说类的大小,是类的对象的大小.首先,类的大小是什么?确切的说,类只是一个类型定义,它是没有大小可言的。 用sizeof运算符对一个类型名操作,得到的是具有该类型实体的大小。 如果 Class A; A obj; 那么sizeof(A)==sizeof(obj) 那么sizeof(A)的大小和成员的大小总和是什么关系呢,很简单,一个对象的大转载 2015-09-16 16:59:51 · 468 阅读 · 0 评论 -
C语言scanf函数详细解释
C语言scanf函数详细解释函数名: scanf 功 能: 执行格式化输入 用 法: int scanf(char *format[,argument,...]);scanf()函数是通用终端格式化输入函数,它从标准输入设备(键盘) 读取输入的信息。可以读入任何固有类型的数据并自动把数值变换成适当的机内格式。其调用格式为: scanf("",);scanf()函数转载 2015-09-11 17:08:33 · 563 阅读 · 0 评论 -
C语言中sscanf 的详细用法
sscanf() - 从一个字符串中读进与指定格式相符的数据.[cpp] view plaincopyprint?函数原型: Int sscanf( string str, string fmt, mixed var1, mixed var2 ... ); int scanf( const char *format [,转载 2015-08-21 11:23:11 · 512 阅读 · 0 评论 -
gcc编译选项
转载自http://blogold.chinaunix.net/u3/94700/showart.php?id=2340792gcc 提供了大量的警告选项,对代码中可能存在的问题提出警 告,通常可以使用-Wall来开启以下警告: -Waddress -Warray-bounds (only with -O2) -Wc++0x-compat转载 2015-08-26 22:09:52 · 539 阅读 · 0 评论 -
Linux 关于动态链接库以及静态链接库的一些概念
From http://os.rdxx.com/Linux/LinuxRudiment/2008/5/17017197011.shtml库有动态与静态两种,动态通常用.so为后缀,静态用.a为后缀。例如:libhello.so libhello.a 为了在同一系统中使用不同版本的库,可以在库文件名后加上版本号为后缀,例如: libhello.so.1.0,由于程序连接默认以.so为文件转载 2015-08-26 21:46:35 · 387 阅读 · 0 评论 -
AVL树旋转操作图解
http://blog.youkuaiyun.com/collonn/article/details/20128205AVL树的旋转操作 图解 最详细各大教课书上讲的都是左旋与右旋,其实这样很容易理解错误,我们换一种叫法。我们称呼左旋为:逆进针旋转。我们称呼右旋为:顺进针旋转。老规矩,直接上图。如果再看不懂AVL树的旋转,我就无能为力了。。。转载 2015-06-05 21:25:16 · 806 阅读 · 0 评论 -
C语言字节对齐
文章来源于:点击打开链接文章最后本人做了一幅图,一看就明白了,这个问题网上讲的不少,但是都没有把问题说透。 一、概念 对齐跟数据在内存中的位置有关。如果一个变量的内存地址正好位于它长度的整数倍,他就被称做自然对齐。比如在32位cpu下,假设一个整型变量的地址为0x00000004,那它就是自然对齐的。 二、为什么要字节对齐转载 2015-06-03 15:21:54 · 1639 阅读 · 0 评论 -
数组与指针的理解
最近被数组,指针搞晕了,查了一些资料,也看了《C专家编程》这本书,对这些有了些了解。下面写的这些东西时我个人的理解,如有不正确的地方,还望各位大神指正!数组与指针的异同点1、数组与指针的的不同点 很多时候数组和指针是一样的,但在C语言中两者确实有区别。数组名就代表的该数组的第一个元素的地址,而指针存储的值才代表地址。一下时节选自《C专家编程》中的一段话:char a[9]="abcdefgh"原创 2015-04-27 14:35:03 · 407 阅读 · 0 评论 -
C++和java多态的区别
C++和java多态的区别C++中,如果父类中的函数前边标有virtual,才显现出多态。如果父类func是virtual的,则Super *p =new Sub();p->func(); // 调用子类的func如果不是virtual的,p->func将调用父类原来的函数。 Java中,不管写不写virtual都是多态的,子类的同名函数会overrid转载 2015-04-29 14:41:51 · 365 阅读 · 0 评论 -
多维数组和指针
声明:1. 文章如有不妥的地方,请您指正,谢谢. 2.另外文中有些细节可能引用您的内容却未给出参考,请原谅我的疏忽,你的共享我不会忘记. 3. Email:lizhiguo0532@163.com 李枝果/lizgo 4. 转载请保留该部分信息 二维数组在多维数组中算是简单的了,但是如果二维数组不清楚,就转载 2015-04-22 14:08:44 · 420 阅读 · 0 评论 -
重载,覆盖,隐藏的区别
成员函数的重载,覆盖,隐藏(1)成员函数被重载的特征:相同的类范围,函数名字相同,参数不同,virtual 关键字可有可无。(2)覆盖指派生类的函数覆盖基类函数,特征是分别位于基类和派生类,函数名字相同,参数相同,基类函数必须有virtual关键字(3)隐藏是指派生类的函数屏蔽了与其同名的基类函数。1,派生类的函数与基类的函数同名,但是参数不同,不论有无原创 2015-09-19 16:17:21 · 749 阅读 · 0 评论