c++语法,面向对象
chunxia75qin
这个作者很懒,什么都没留下…
展开
-
将析构函数设置为虚函数,并且析构函数可以为纯虚函数
为什么基类的析构函数是虚函数? 在实现多态时,当用基类操作派生类,在析构时防止只析构基类而不析构派生类的状况发生。 但如果不需要基类对派生类及对象进行操作,则不能定义虚函数,因为这样会增加内存开销.当类里面有定义虚函数的时候,编译器会给类添加一个虚函数表,里面来存放虚函数指针,这样就会增加类的存储空间.所以,只有当一个类被用来作为基类的时候,才把析构函数写成虚函数. 为什么析构原创 2013-05-09 18:48:11 · 1876 阅读 · 0 评论 -
strcpy与strncpy
strcpy:字符串复制 原型:char *strcpy(char *dest, char *src); 功能:把src所指由'\0'结束的字符串复制到dest所指的数组中。 说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。 返回指向dest的指针。 注意:当src串长度>dest串长原创 2013-05-09 19:04:02 · 691 阅读 · 0 评论 -
详解c++内存分配方式
栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储区。里面的变量通常是局部变量、函数参数等。在一个进程中,位于用户虚拟地址空间顶部的是用户栈,编译器用它来实现函数的调用。和堆一样,用户栈在程序执行期间可以动态地扩展和收缩。 堆,就是那些由 new 分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个 new 就要对应一个 delete。如果程序员没有释原创 2013-05-09 19:29:05 · 620 阅读 · 0 评论 -
详解c++中的new跟delete
new和delete在C++中特别要重,在此简单总结一下new和delete各种含义。 new与operator new C++中有很多语法让人难以理解,如:new operator(操作符,下同)和operator new之间差异, 确切的说,应该是new与operator new 的区别。 如下代码: string *ps=new string("memory m原创 2013-05-09 20:41:44 · 973 阅读 · 0 评论