CPP
文章平均质量分 61
DREAMonce_
这个作者很懒,什么都没留下…
展开
-
CPP入门基础知识
一.CPP和C语言的不同 1. cpp和C语言的头文件不同 C语言的头文件一般用#include<stdio.h>而cpp的头文件为#include<iostream>而在cpp的头文件之后还有 using namespace std; 命名空间使用namespace来声明,std命名空间是C++中标准库类型对象的命名空间,命名空间实际上是一个作用域 2.输入和输出的区别原创 2017-06-18 16:45:31 · 4814 阅读 · 0 评论 -
为什么模板不支持分离编译
//test.h 声明一个函数func()void func();//test.cpp 实现func函数#include"test.h"void func(){}//main.cpp 调用func函数int main(){ func();}编译器会对以上代码进行处理: test. cpp和main.cpp各自被编译成不同的.obj文件,在main.cpp中,调原创 2017-09-23 12:03:41 · 326 阅读 · 0 评论 -
多态&多态对象模型
1:什么是多态? 多态就是多种形态。 满足构成多态的条件:必须有虚函数的重写(函数名,参数,返回值均相同,协变除外) 父类的指针或引用调用虚函数 多态跟类型无关而和对象有关,如果不构成多态则与类型有关 父类必须为虚函数,子类可以是也可以不是,构造函数不能为虚函数。class A{public: virtual原创 2017-08-06 18:25:33 · 352 阅读 · 0 评论 -
C++简单实现顺序表和单链表
c顺序表#include <iostream>#include <assert.h>using namespace std;typedef int DataType;class SeqList{public: SeqList() : _array(NULL) , _size(0) , _capacity(0) {} Seq原创 2017-07-20 11:57:14 · 475 阅读 · 0 评论 -
C++实现双链表
C++简单实现顺序表和单链表 双链表#include<iostream>#include<assert.h>using namespace std;typedef int DataType;struct ListNode{ ListNode* _next; ListNode* _prev; DataType _data; ListNode(DataType x原创 2017-07-26 15:13:33 · 325 阅读 · 0 评论 -
String--引用计数写时拷贝
写时拷贝 class String{public: String(char* str = "") { _str = new char[strlen(str) + 1]; _refCountPtr = new int(1); strcpy(_str, str); } ~String() {原创 2017-07-26 14:47:02 · 321 阅读 · 0 评论 -
菱形继承
继承继承是用来实现复用,是类型之间的关系建模。 继承关系有public(公有继承),protected(保护继承),private(私有继承)class A{public: void f1() { cout << "A::f1()" << endl; }public: int _a;};class B :public A //A为父类原创 2017-07-26 14:29:07 · 276 阅读 · 0 评论 -
讨论构造拷贝构造的N中调用情况的问题
C++对传参合传返回值时构造的优化处理C++形式参数类型和返回值类型如果是引用,那么在传递时,会把实参或者返回值的引用自动 赋值给形式参数(返回值)。C++返回值赋值和返回值的使用往往会进行编译器的优化,例如:下面的调用中,只会调用两次构造函数(一次是默认构造函数,另外一次是自动 拷贝构造函数)。 只有在一个表达式内才会优化 Test1中调用了次AA的拷贝构造函数次AA的赋值运算符函数的原创 2017-07-15 22:00:26 · 325 阅读 · 0 评论 -
C/C++动态内存管理
1:总结并剖析malloc/free和new/delete之间关系和差异。 2:剖析new/delete、new[]/delete[]到底做了些什么事情。 3:实现NEW_ARRAY/DELETE_ARRAY宏,模拟new[]/delete[]申请和释放数组。 C动态内存管理C语言使用malloc/realloc/calloc/free进行动态内存管理realloc=>指针给空时,与mallo原创 2017-07-14 13:41:11 · 384 阅读 · 0 评论 -
关于malloc函数的用法
一,函数声明malloc 向系统申请分配指定size个字节的内存空间。返回类型是 void* 类型。void* 表示未确定类型的指针。C,C++规定,void* 类型可以通过类型转换强制转换为任何其它类型的指针如果分配成功则返回指向被分配内存的指针,否则返回空指针NULL。当内存不再使用时,应使用free()函数将内存块释放。1.内存分配例如char *p =原创 2017-03-29 14:40:40 · 1675 阅读 · 0 评论 -
C++类和对象:四个默认函数和运算符重载
一.类 1.类的定义 类是创建对象的模板,一个类可以创建多个对象,每个对象都是类类型的一个变量;创建对象的过程也叫类的实例化。每个对象都是类的一个具体实例(Instance) ,拥有类的成员变量和成员函数。class Person{public: void Display() { cout << _name << ":" << _age << ":"原创 2017-06-25 14:33:12 · 801 阅读 · 0 评论 -
智能指针
一.智能指针 1.定义 所谓智能指针就是智能/自动化的管理指针所指向的动态资源的释放 2.智能指针发展历史 3.auto_ptr/scoped_ptr/shared_pr/weak_ptr的设计思想、缺陷template<class T>class AutoPtr{public: AutoPtr(T* ptr) :_ptr(ptr)原创 2017-09-28 19:24:34 · 314 阅读 · 0 评论