码迷,mamicode.com
首页 > 2016年09月06日 > 全部分享
深入C++对象模型&虚函数表
多态的实现机制:C++中虚函数的主要作用就是用来实现多态,就是使用基类的指针或者引用调用重写的虚函数,当父类的指针或引用指向父类对象时调用的是父类虚函数,当指向子类对象时调用的是子类的虚函数。那么这又是怎么实现的呢???这都是通过虚函数表实现的,虚函数表是通过..
分类:编程语言   时间:2016-09-06 23:32:50    阅读次数:169
深拷贝与浅拷贝
一、浅拷贝和深拷贝所谓浅拷贝,就是由默认的拷贝构造函数所实现的对数据成员逐一赋值。若类中含有指针类型的数据,这种方式只是简单的把指针的指向赋值给新成员,但并没有给新成员分配内存,因此这种方式必然会导致错误。为了解决浅拷贝出现的错误,必须显示的定义一个拷贝构..
分类:其他好文   时间:2016-09-06 23:33:30    阅读次数:195
String简单实现
String类的简单实现:1、在拷贝构造函数和赋值运算符重载这两个函数中有浅拷贝和深拷贝的问题2、要对输入输出函数重载3、赋值运算符重载有两种方式。注意在采用交换实现的时候函数的参数只能是临时变量classString { friendostream&operator<<(ostream&os,Strin..
分类:其他好文   时间:2016-09-06 23:32:13    阅读次数:174
写时拷贝技术
CopyOnWrite(COW):写时拷贝技术一、什么是写时拷贝技术:写时拷贝技术可以理解为“写的时候才去分配空间”,这实际上是一种拖延战术。举个栗子:二、写时拷贝技术原理:写时拷贝技术是通过"引用计数"实现的,在分配空间的时候多分配4个字节,用来记录有多少个指针指向块空间,..
分类:其他好文   时间:2016-09-06 23:32:37    阅读次数:329
new/delete和new[]/delete[]的底层调用和简单实现
在使用new的时候做了两件事:1、调用operatornew分配空间2、调用构造函数初始化对象在使用delete的时候也做了两件事:1、调用析构函数清理对象2、调用operatordelete函数释放空间在使用new[N]的时候也做了两件事:1、调用operatornew分配空间2、调用N次构造函数初始化N个对象在..
分类:其他好文   时间:2016-09-06 23:31:46    阅读次数:137
智能指针简单实现
很多人都误以为智能指针是一个指针,其实不然,智能指针不是指针,智能指针是一个模板,由智能指针实例化出来的的对象具有和常规指针相似的行为,但是他能够自动的释放所指向的对象,所以我们称之为智能指针。如果我们用普通指针来创建一个指向某个对象的指针,那么我们最后必..
分类:其他好文   时间:2016-09-06 23:33:23    阅读次数:213
shared_ptr循环引用&定置删除器
shared_ptr虽然方便,但是它有着一个致命的缺陷就是循环引用问题,因为shared_ptr本身并没有能力解决这个问题,所以我们又引入了弱指针weak_ptr来辅助shared_ptr解决这个问题。那么循环引用又是什么场景?举个栗子:假设现在我们要创建一个双向整形链表,但是这个链表的指针域..
分类:其他好文   时间:2016-09-06 23:30:48    阅读次数:174
Centos6环境网卡别名和bond详解
一.网卡别名1.对虚拟主机有用2.可以将多个IP地址绑定在一个NTC上eth0:1eth0:2eth0:33.ifconfig命令ifconfigeth0:0192.168.1.100/24up临时修改网卡的IP地址和子网掩码,重启网络服务后失效4.ip命令ipaddradd172.16.1.2/16deveth02.配置别名时,会有和NetworkManager服务不兼容情况..
分类:其他好文   时间:2016-09-06 23:33:11    阅读次数:1862
链表模板、队列模板、顺序表模板、栈模板、
//利用容器适配器实现栈和队列 #pragmaonce #include<iostream> #include<string> #include<cassert> usingnamespacestd; template<typenameT> structNode { public: Node(constT&d) :_next(NULL) ,_prev(NULL) ,_data(d){} T_data; N..
分类:其他好文   时间:2016-09-06 23:31:54    阅读次数:174
linux 第5周作业
1、显示当前系统上root、fedora或user1用户的默认shell;grep-E"^root\>|^fedora\>|^user1\>"/etc/passwd|cut-d:-f1,72、找出/etc/rc.d/init.d/functions文件中某单词后面跟一组小括号的行,形如:hello();grep-o"[[:alpha:]]\+()"/etc/rc.d/init.d/functions3、使用..
分类:系统相关   时间:2016-09-06 23:32:34    阅读次数:367
类型萃取
在C++中我们可以通过typeid来获取一个类型的名称(内置类型和自定义类型都可以),但是我们不能用这种方式获取来的名称做变量的声明。那么在C++中怎样识别对象的类型呢??我们可以通过类型萃取的方式来区分内置类型和自定义类型。例如:我们在Seqlist中要用到类型萃取,因为内置..
分类:其他好文   时间:2016-09-06 23:32:24    阅读次数:141
强制类型转换
C++中的强制类型转换:static_cast、reinterpret_cast、const_cast、dynamic_cast. static_cast:用于非多态类型之间的转换(静态转换),任何标准类型之间都可以用它,但它不能用于不相关类型之间的转换。static_cast只能用于相关类型之间的转换。 例: inti=2; doubled=static..
分类:其他好文   时间:2016-09-06 23:32:08    阅读次数:171
深入理解命名空间
一、为什么使用命名空间一个大型的工程往往是由若干个人独立完成的,不同的人分别完成不同的部分,最后再组合成一个完整的程序。由于各个头文件是由不同的人设计的,有可能在不同的头文件中用了相同的名字来命名所定义的类或函数,这样在程序中就会出现名字冲突。不仅如此,有..
分类:其他好文   时间:2016-09-06 23:31:16    阅读次数:138
cmd
查看系统信息systeminfo
分类:其他好文   时间:2016-09-06 23:29:49    阅读次数:113
RHEL7.0手动安装
首先去网上下载RHEL7.0系统,最好去官网下载。本次教程采用rhel-server-7.0-x86_64-dvd.iso镜像,是在RHEL7.0真机利用Redhat自带虚拟机安装RHEL7.0虚拟机。[root@localhostiso]#lsrhel-server-7.0-x86_64-dvd.iso1.使用命令打开虚拟机[root@localhostiso]#virt-manager2.点击左..
分类:其他好文   时间:2016-09-06 23:29:31    阅读次数:262
获取创建SQL Server对象的定义文本
引用自《SQLServer2012Internals》“Asviews,thesemetadataobjectsarebasedonanunderlyingTransact-SQL(T-SQL)defnition.Themoststraightforwardwaytoseethedefnitionoftheseviewsisbyusingtheobject_defnitionfunction.(Youcanalsoseethedefnitionofthesesystemviewsbyusingsp..
分类:数据库   时间:2016-09-06 23:30:11    阅读次数:244
Python 从文件中筛选出ip 正则表达(re)
#!/usr/bin/envpython #_*_coding:utf-8_*_ __author__=‘gaogd‘ importre withopen(‘arr.txt‘,‘r‘)asf: forlineinf.readlines(): result2=re.findall(‘[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}‘,line) ifnotresult2==[]: printresult2[0] result=result2[0]+‘\n‘ with..
分类:编程语言   时间:2016-09-06 23:31:51    阅读次数:266
1753条   上一页 1 ... 4 5 6 7 8 9 10 ... 104 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!