C/C++
文章平均质量分 77
wodemingzibu
这个作者很懒,什么都没留下…
展开
-
关于C++中的友元函数的总结
1.友元函数的简单介绍 1.1为什么要使用友元函数 在实现类之间数据共享时,减少系统开销,提高效率。如果类A中的函数要访问类B中的成员(例如:智能指针类的实现),那么类A中该函数要是类B的友元函数。具体来说:为了 使其他类的成员函数直接访问该类的私有变量。即:允许外面的类或函数去访问类的私有变量和保护变量,从而使两个类共享同一函数。 实际上具体大概有下面两种情况需要使用友元转载 2014-01-04 13:49:38 · 390 阅读 · 0 评论 -
C++中的static关键字
转载自:http://blog.csdn.net/hackbuteer1/article/details/7487694 C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数,不涉及类;后者主要说明static在类中的作用。 一、面向过程设计中的static 1、静态全局变量 在全局变量前,加上关键字static,该变转载 2014-01-04 13:58:19 · 350 阅读 · 0 评论 -
malloc/free与new/delete的区别
转载自:http://blog.csdn.net/hackbuteer1/article/details/6789164 相同点:都可用于申请动态内存和释放内存 不同点: (1)操作对象有所不同。 malloc与free是C++/C 语言的标准库函数,new/delete 是C++的运算符。对于非内部数据类的对象而言,光用maloc/free 无法满足动态对象的要求。对象在创建的同时要转载 2014-01-04 14:07:16 · 390 阅读 · 0 评论 -
关于&a和a (a为数组名)
1. a和&a的区别: &a是整个数组的首地址,a是数组首元素的首地址,其值相同,但是意义不同。 eg: char a[5] = {'A','B','C','D'}; char (*p1)[5] = &a; //没有问题,char (*p1)[5]是数组指针,指向数组a[5]的首地址。 char (*p2)[5] = a; //编译出错,提示类型无法从“char [5]”转换为“char转载 2014-01-04 14:39:17 · 906 阅读 · 0 评论 -
extern的用法
修饰符extern用在变量或者函数的声明前,用来说明“此变量/函数是在别处定义的,要在此处引用”。 1. extern修饰变量的声明。举例来说,如果文件a.c需要引用b.c中变量int v,就可以在a.c中声明extern int v,然后就可以引用变量v。这里需要注意的是,被引用的变量v的链接属性必须是外链接(external)的,也就是说a.c要引用到v,不只是取决于在a.c中声明e转载 2014-01-04 15:21:05 · 948 阅读 · 0 评论 -
大小端模式详解
转载自:http://blog.csdn.net/xdx2ct1314/article/details/7693539 端模式(Endian)的这个词出自Jonathan Swift书写的《格列佛游记》。这本书根据将鸡蛋敲开的方法不同将所有的人分为两类,从圆头开始将鸡蛋敲开的人被归为Big Endian,从尖头开始将鸡蛋敲开的人被归为Littile Endian(这句话最为形象)。小人国的内转载 2014-01-03 16:16:52 · 461 阅读 · 0 评论 -
C++浅拷贝和深拷贝的区别
转载自:http://blog.csdn.net/xdx2ct1314/article/details/7495539 c++默认的拷贝构造函数是浅拷贝 浅拷贝就是对象的数据成员之间的简单赋值,如你设计了一个没有类而没有提供它的复制构造函数,当用该类的一个对象去给令一个对象赋值时所执行的过程就是浅拷贝,如: class A { public: A(转载 2014-01-03 16:27:50 · 486 阅读 · 0 评论 -
C++经典面试题
转载自:http://blog.csdn.net/hackbuteer1/article/details/7467139 1、int a=5,则 ++(a++)的值是() A、5 B、 6 C、7 D、逻辑错误 a++返回的是一个临时变量,这里是右值,不能再前面++了 2、下面的代码输出什么?(取地址运算符比+运算符的优先级要高)转载 2014-01-04 14:08:59 · 450 阅读 · 0 评论