C++
my_et
这个作者很懒,什么都没留下…
展开
-
c++ 虚函数
我们知道,用C++开发的时候,用来做基类的类的析构函数一般都是虚函数。可是,为什么要这样做呢?下面用一个小例子来说明: 有下面的两个类:class ClxBase{public: ClxBase() {}; virtual ~ClxBase() {}; virtual void DoSomething() { cout "Do转载 2013-06-07 09:25:01 · 476 阅读 · 0 评论 -
c c++ 分配内存区别
一、C语言动态内存分配 要实现动态内存的分配,除了利用含指针成员的结构体之外,还需利用C语言提供的几个标准库函数。(使用时应包含头文件“alloc.h”或“malloc.h”或“stdlib.h”) 1.malloc函数 函数原型为void *malloc(unsigned int size);在内存的动态存储区中分配一块长度为"size" 字节的连续区域。函数的返转载 2013-05-24 10:16:43 · 1099 阅读 · 0 评论 -
C++ 多态,虚函数
在c++中可以用基类指针指向其派生类,如果一个派生类继承多个父类,那么如何通过基类指针访问同名的成员呢? 如果基类A,基类B中都有函数fun(),派生类在同时继承A、B后在内存中根据继承的顺序分配内存,例如在继承列表中出现的是B,A,那么B中的成员在A的之前,当我们用B的指针去访问时候,编译器便将指针指向B的成员,同理用A的指针去访问,编译器便将指针指向A的成员。clas原创 2013-07-01 15:26:55 · 532 阅读 · 0 评论 -
deque list vector 区别
1. vector 就是一个在堆上建立的一维数组,因为在堆上,所以对其进行erase( ), resieze()等操作;还有一点就是,vector不用担心越界当空间不够用的时候,系统会自动按照一定的比例(对capacity( )大小)进行扩充。 vector最大的优点莫过于是检索(用operator[ ])速度在这三个容器中是最快的,还有就是在vector序列末尾添加(push_转载 2013-06-06 20:08:27 · 558 阅读 · 0 评论 -
c++智能指针与内存管理
c++中当我们需要新分配内存的时候需要手动的去调用new显式的分配一块内存,如果我们在任何中new(如函数中申请空间返回忘记释放,或者在函数执行过程中出现异常,没有执行释放语句)了空间,在不需要使用后忘记了调用delete这块地址的话就会造成内存泄露。 为了解决这一个问题引入了智能指针。智能指针实际上是一个指针的托管对象。它的构造函数是这样声明的:template原创 2013-08-22 17:33:21 · 663 阅读 · 0 评论 -
C++ 知识点
一.const的作用 const是C语言的一种关键字,起受保护,防止以外的变动的作用!可以修饰变量,参数,返回值,甚至函数体。const可以提高程序的健壮性,你只管用到你想用的任何地方。(一)const修饰参数。const只能修饰输入参数。1、如果输入参数是指针型的,用const修饰可以防止指针被意外修改。2、如果参数采用值传递的方式,无需const,因为函数自动产生临时变转载 2013-05-18 20:45:40 · 483 阅读 · 0 评论 -
Effective C++总结
声明构造函数的时候应该尽量往前面加上explict防止隐式的转换,这样可以提高安全性条款2:对于常量尽量用const 代替#define,对于函数以inline代替#define条款3:尽量的使用const.对于指针情况。 如果const出现在*的左边,那么内容是常量,如果是右边则指针是常量。而类型和const的位置可以交换A const * p;原创 2013-08-28 22:29:53 · 450 阅读 · 0 评论 -
printf的实现
研究printf的实现,首先来看看printf函数的函数体 int printf(const char *fmt, ...) { int i; char buf[256]; va_list arg = (va_list)((char*)(&fmt) + 4); i = vsprintf(buf, fmt, arg); write(buf转载 2013-10-16 14:29:17 · 1112 阅读 · 0 评论