![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++
文章平均质量分 78
lurendetiankong
这个作者很懒,什么都没留下…
展开
-
malloc和new的区别是摘要
1,malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。 2,对于非内部数据类型的对象而言,光用malloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。由于malloc/free是库函数而不是运算符,不在编译器控制权限之内,不能够把执行构造函数和析构函数的任务强加于转载 2016-11-11 19:42:58 · 220 阅读 · 0 评论 -
C++继承中的内存布局
本文原文出处为MSDN。如果你安装了MSDN,可以搜索到C++ Under the Hood。否则也可在网站上找到http://msdn.microsoft.com/archive/default.asp?url=/archive/en-us/dnarvc/html/jangrayhood.asp。 一个C++程序员,想要进一步提升技术水平的话,应该多了解一些语言的语意细节。对于使用VC转载 2016-12-11 14:40:57 · 450 阅读 · 0 评论 -
面向对象的三个基本特征摘要
那么,多态的作用是什么呢?我们知道,封装可以隐藏实现细节,使得代码模块化;继承可以扩展已存在的代码模块(类);它们的目的都是为了——代码重用。而多态则是为了实现另一个目的——接口重用!多态的作用,就是为了类在继承和派生的时候,保证使用“家谱”中任一类的实例的某一属性时的正确调用。转载 2016-11-14 11:42:43 · 234 阅读 · 0 评论 -
c++中必须在类初始化列表中初始化的几种情况摘要
1. 类成员为const类型 2. 类成员为引用类型 #include using namespace std; class A { public: A(int &v) : i(v), p(v), j(v) {} void print_val() { cout "hello:" " " endl;} private:转载 2016-11-11 20:39:26 · 468 阅读 · 0 评论 -
string/string.h/cstring头文件的区别摘要
1. #include //不可以定义string s;可以用到strcpy等函数 using namespace std; #include //可以定义string s;可以用到strcpy等函数 using namesapce std; #include //不可以定义string s;可以用到strcpy等函数 2. 1)文件cstr转载 2016-11-05 16:01:58 · 347 阅读 · 0 评论 -
Ubuntu中常用的apt和dpkt命令
Ubuntu中常用的apt和dpkt命令 apt-cache search package 搜索包 apt-cache show package 获取包的相关信息,如说明、大小、版本等 apt-get sudo apt-get install package 安装包 sudo apt-get install package – - rei转载 2016-11-10 11:48:24 · 1233 阅读 · 0 评论 -
C++的虚基类,抽象类,虚函数,纯虚函数,virtual
虚基类 在说明其作用前先看一段代码 class A { public: int iValue; }; class B:public A { public: void bPrintf(){cout }; class C:public A { public: void cPrintf(){cout }; class D:public B,publi转载 2016-11-10 11:59:02 · 528 阅读 · 0 评论 -
c++函数重载摘要
函数重载的定义是:在相同的作用域中,如果函数具有相同名字而仅仅是形参表不同,此时成为函数重载。注意函数重载不能基于不同的返回值类型进行重载。 注意函数重载中的“形参表”不同,是指本质不同,不要被一些表象迷惑。main函数不能被重载。 下面三组定义本质是相同的,不是重载: 1)int sum (int &a); 和 int sum (int &); 2) int sum (转载 2016-11-10 16:12:04 · 213 阅读 · 0 评论 -
虚析构函数与内存泄漏
1、当申请的动态内存指针是基类指针时,需考虑内存的泄漏情况如下代码: #include using namespace std; class A { public: A(){ cout } ~A() { cout } }; class B:public A { public: B(){ cout } ~B(){ cout原创 2016-11-10 18:18:57 · 482 阅读 · 0 评论 -
九大排序算法
概述排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。 我们这里说说八大排序就是内部排序。 当n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快速排序、堆排序或归并排序序。 快速排序:是目前基于比较的内部排序中被认为是最好的方法,当待排序转载 2016-11-10 19:19:59 · 1133 阅读 · 0 评论 -
关于C++成员函数和运算符的重载
1.为啥要重载操作符: 通过重载操作符,程序员可以针对“类”类型的操作数定义不同的操作符版本。良好的操作符定义可以使class类型的使用想内置类型一样直观简洁,使用重定义的操作符而不是命名函数使得程序可以用表达式代替函数调用,使程序编写和阅读更容易~ 2.哪些不能重载 :: .* . ?: 这些不能重载 3.需要注意的地方:转载 2016-11-10 19:36:46 · 3974 阅读 · 0 评论 -
动态绑定和静态绑定(虚函数)
为了支持c++的多态性,才用了动态绑定和静态绑定。理解他们的区别有助于更好的理解多态性,以及在编程的过程中避免犯错误。 需要理解四个名词: 1、对象的静态类型:对象在声明时采用的类型。是在编译期确定的。 2、对象的动态类型:目前所指对象的类型。是在运行期决定的。对象的动态类型可以更改,但是静态类型无法更改。 关于对象的静态类型和动态类型,看一个示例: [cpp] vi转载 2016-11-10 20:35:14 · 366 阅读 · 0 评论 -
从编译器的角度分析继承中的虚函数
下面首先以一个简单的动物继承体系为例,来进行说明: public abstract class Animal { public abstract void ShowType(); public void Eat() { Console.WriteLine("Animal a转载 2016-12-11 15:39:25 · 239 阅读 · 0 评论