
C++
文章平均质量分 53
kentyu001
这个作者很懒,什么都没留下…
展开
-
delete 与 delete[] 释放内存
以下内容来引自:http://yiyunscu.blog.163.com/blog/static/3626332020105102623649/我们通常从教科书上看到这样的说明:delete 释放new分配的单个对象指针指向的内存delete[] 释放new分配的对象数组指针指向的内存那么,按照教科书的理解,我们看下下面的代码:int *a = new int[10];delete a;转载 2015-09-30 10:28:05 · 867 阅读 · 0 评论 -
C++中vector的实现
注意几点:分配内存不要使用new和delete,因为new的同时就把对象构造了,而我们需要的是原始内存。所以应该使用标准库提供的allocator类来实现内存的控制。当然也可以重载operator new操作符,因为二者都是使用malloc作为底层实现,所以直接采用malloc也可以。对象的复制必须使用系统提供的uninitialized_fill和uninitialized_copy,因转载 2017-01-16 17:40:29 · 435 阅读 · 0 评论 -
关于指针的15个经典面试题
1. 常指针与常量的指针 char * const p; char const * p const char *p 上述三个有什么区别? char * const p; //p为只读指针。 char const * p;//p值只读的指针。 const char *p; //和char const *p-----------------转载 2017-01-16 17:24:37 · 556 阅读 · 0 评论 -
const void *a 与 void *const a 的区别
const void *a这是定义了一个指针a,a可以指向任意类型的值,但它指向的值必须是常量。在这种情况下,我们不能修改被指向的对象,但可以使指针指向其他对象。例如:const void *a;*a=0x123;//是编译通不过的,因为*a中放的是个const值。const值是不能被改变的。const int m=1; const int n=2;a=&m;转载 2017-01-16 17:22:50 · 1375 阅读 · 0 评论 -
为什么在函数的声明后面还有一个 const? 如:void fun() const;
首先像这样的声明void fun() const;必须是类的成员函数,不能是单独的类外部函数其次,如果为类成员函数,他表示(1)不能修改成员变量; (2)不能调用非const函数; (3)其他const函数可以调用它;(其他非const函数当然也可以调用它) (4)只能从const对象(或引用用指针)上调用,比如:const A a; a.f(); 补充:转载 2017-01-16 17:21:33 · 450 阅读 · 0 评论 -
四种强制类型转换的总结(const_cast、static_cast、dynamic_cast、reinterpreter_cast)
C风格的强制类型转换(Type Cast)很简单,不管什么类型的转换统统是: TYPE b = (TYPE)a C++风格的类型转换提供了4种类型转换操作符来应对不同场合的应用。 const_cast,字面上理解就是去const属性。 static_cast,命名上理解是静态类型转换。如int转换成char。 dynamic_cast,命名上理解是转载 2015-09-23 11:54:19 · 341 阅读 · 0 评论 -
c++中“::”和“->”
“::”称为分辩符,指明了成员函数所属的类如:M::f(s)就表示f(s)是类M的成员函数“->”在C++中优先级最高如:若a为一指向对象的指针,a->f(s)就表示调用a所指的对象中的成员函数f(s)转载 2015-10-08 14:37:45 · 547 阅读 · 0 评论 -
C/C++从入门到精通(入门、进阶、精通)
今天在网上偶然看见许多大师在讨论如何学习C/C++,大牛们推荐了一些书籍,个人觉得很不错,怕以后想学的时候找起来费劲,所以给整过来了。(本文转自大牛、大师们)我的个人的拙见可以这样学C++:第一步:首先入门可以从 国内出版的 教材入门 如 潭浩强的> 清华大学出版的>等 能了解一些基本语法 会编写些简单的程序 第二步:看>我绝对对赞同这是本好书,面也广.>这本书的名头也转载 2015-09-16 20:02:27 · 39564 阅读 · 16 评论 -
读书笔记(Linux c/c++入门与进阶)
在例子13.30作者谈到A_String和B_String指向同一块内存,当删除B_String,A_String的对应内存就会被删除或者出错,但是实际实验下来并没有删除,操作系统是ubuntu 14.40,当所有指向该内存块的指针都被删除才释放该块内存.#include #include using namespace std;class String{private:原创 2015-09-30 10:36:27 · 987 阅读 · 0 评论 -
C/C++面试题
有关指针的经典面试题 C语言为何如此长寿并实用?C++为什么有那么多精彩?指针可以说是C/C++中的灵魂所在,虽然早期中pascal也有指针,但是和C/C++比起来不是一个级别的.今天为大家深入浅出的解析一下指针的有关笔试,面试题.所有题目来源网络,分析是我写的...0.预备知识,最基础的指针其实最基础的指针也就应该如下面代码:int a;转载 2017-01-16 17:43:15 · 554 阅读 · 0 评论