E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
虚析构函数
【C++】Virtual method but non-virtual destructor
有虚函数(纯虚函数)就应该有
虚析构函数
。
桥下一粒砂
·
2012-04-10 14:00
C++
virtual
C++
虚析构函数
1.为什么需要
虚析构函数
:当使用new运算符动态分配内存时,基类的析构函数就应该定义为
虚析构函数
,不然就会出问题。
pzw0416
·
2012-03-30 17:00
C++
c
delete
Class
C++ 中析构函数为什么要求是虚的?
这是因为,通过基类指针来销毁派生类对象这个行为,当基类没有
虚析构函数
时会产生问题。我们知道删除指针对象是没有问题的,指针对象的析构函数会正确调用,但仅限于指针的类型所表示的对象大小。
yukin_xue
·
2012-03-09 10:00
个人对继承理解以及
虚析构函数
的理解
今天又从新研究了下继承和重载,感觉又有新的体会。首先是对继承的理解,继承简单的说就是把基类的东西保留下来(一般都是public继承,这样基类中的public成员继承过来后还是public,基类中的protected成员继承过来后为protected,private成员派生类也无法访问)。这样就达到了代码复用的效果,派生类继承了基类的各个成员及方法。对于派生类来说,如果需要新的成员或者方法,可以在类
leeboy_wang
·
2012-02-26 20:00
C++
纯
虚析构函数
纯
虚析构函数
和普通纯虚函数的区别在于,纯
虚析构函数
需要提供函数的实现,而一般纯虚函数不能有实现,这样的原因在于,纯
虚析构函数
最终需要被调用,以析构基类对象,虽然是抽象类没有实体。
yby4769250
·
2012-02-26 01:00
delete
虚析构函数
ClassA{}ClassB:publicA{}ClassC:publicB{} 在一般的使用下,如Cc;如果存在继承派生关系,当构造一个子类对象时,会先从最上层先调用基类的构造函数构造基对象,然后逐步往下,最后调用子类的构造函数完成子类对象的构造,而当销毁子类对象时,会按照相反顺序,先调用子类的析构函数,然后调用基类的析构函数,最后完成一个对象的析构。注意,这是正常的使用情况下的方式,这种多态用
yby4769250
·
2012-02-26 01:00
c
delete
存储
Class
构造函数 虚函数
虚析构函数
#includeclassBase{public:Base(){printf("callBase\n");}virtual~Base(){printf("call~Base\n");}virtualintcmd_id(){returnm_cmd_id;}public:intm_cmd_id;};classDerive:publicBase{public:Derive(){m_cmd_id=11;p
lizhi200404520
·
2012-02-24 14:00
cmd
Class
include
C++虚函数探索笔记(3)——延伸思考:虚函数应用的一些其他情形
虚函数的实现原理 虚函数表在对象布局里的位置 虚函数的类的sizeof 纯虚函数的作用 多级继承时的虚函数表内容 虚函数如何执行父类代码 多继承时的虚函数表定位,以及对象布局
虚析构函数
的作用
susubuhui
·
2012-02-23 12:00
C++中
虚析构函数
的作用
我们知道,用C++开发的时候,用来做基类的类的析构函数一般都是虚函数。可是,为什么要这样做呢?下面用一个小例子来说明: 有下面的两个类:class ClxBase{public: ClxBase() {}; virtual ~ClxBase() {}; virtual void DoSomething() { cout DoSomething();delete pT
likun_tech
·
2012-02-23 10:00
C++的
虚析构函数
classA { public: A(){} virtual~A(){}//这里如果不用虚函数那么下面deletep;就只会调用~A(),显然造成了内存的泄漏,m_data的空间泄漏了 }; classB:publicA { public: char*m_data; B(){m_data=newchar[100];} ~B(){deletem_data;} }; intmain(intargc
dengxu11
·
2012-02-03 23:00
C++
工作
delete
Class
编译器
虚析构函数
(总结 帖子)
虚析构函数
<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top
iloveoracle
·
2011-12-21 09:00
java
工作
虚析构函数(总结 帖子)
C++中
虚析构函数
的作用
在C++编程中,一般基类的析构函数设置为
虚析构函数
。这么做的目的是什么?
wuxiaoer717
·
2011-12-16 13:00
C++对象的内存分析(6)
前言 本节讨论构造函数,析构函数和
虚析构函数
。可能很多人都有这样的经历,面试时经常被问到:什么情况下要使用
虚析构函数
,为什么要使用
虚析构函数
?本文将试图对编译器的实现机制进行分析,来回答这个问题。
yinsen12357
·
2011-12-12 22:33
面试
内存
职场
编译器
休闲
C++对象的内存分析(5)
所以,最后2节将继续阐述2个主题:接口和抽象类以及构造函数、虚构函数和
虚析构函数
。接口 这里我准备只主要阐述接口,而不谈一般的抽象类。
yinsen12357
·
2011-12-12 22:27
接口
内存
主题
多
休闲
虚析构函数
的传递性问题
#include #include"Policy.h" usingnamespacestd; classBase { public: ~Base(){cout<<"deleteBase"<
xiaodan007
·
2011-12-07 14:00
C++
虚析构函数
C++指出:当一个派生类对象通过使用一个基类指针删除,而这个基类有一个非虚的析构函数,则结果是未定义的。运行时比较有代表性的后果是对象的派生部分不会被销毁。如果一个类要被另外一个类继承,而且用其指针指向其子类对象时,如A*d=newB();(假定A是基类,B是从A继承而来的派生类),那么其(A类)析构函数必须是虚的,否则在deleted时,B类的析构函数将不会被调用,因而会产生内存泄漏和
wangjijian
·
2011-12-01 22:00
笔试问题 一
1、
虚析构函数
的必要性? 2、什么是内联函数? 3、什么是内存对齐?
zhao_yin
·
2011-11-29 19:00
[收集]c++抽象类、纯虚函数以及巧用纯
虚析构函数
实现接口类
在Java、C#中有关键词abstract指明抽象函数、抽象类,但是在C++中没有这个关键词,很显然,在C++也会需要只需要在基类声明某函数的情况,而不需要写具体的实现,那C++中是如何实现这一功能的,答案是纯虚函数。 含有纯虚函数的类是抽象类,不能生成对象,只能派生。他派生的类的纯虚函数没有被改写,那么它的派生类还是个抽象类。定义纯虚函数就是为了让基类不可实例化化,因为实例化这样的抽象数据结构本
yockie
·
2011-11-29 17:00
数据结构
C++
delete
Class
编译器
虚析构函数
之实践
看了不少虚函数方面的文章,但对于
虚析构函数
在功能实现上还是不甚理解,于是决定实践一番,可让我收益匪浅啊首先定义一个没有虚函数的基类:#include #include usingnamespacestd
chenloug
·
2011-10-26 22:00
虚析构函数
之实践
看了不少虚函数方面的文章,但对于
虚析构函数
在功能实现上还是不甚理解,于是决定实践一番,可让我收益匪浅啊首先定义一个没有虚函数的基类:#include #include usingnamespacestd
wangxiaohigh
·
2011-10-26 22:00
函数
虚析构函数
(总结 帖子)
一.
虚析构函数
我们知道,为了能够正确的调用对象的析构函数,一般要求具有层次结构的顶级类定义其析构函数为虚函数。因为在delete一个抽象类指针时候,必须要通过虚函数找到真正的析构函数。
wangxiaohigh
·
2011-10-24 14:00
总结
虚析构函数
(总结 帖子)
一.
虚析构函数
我们知道,为了能够正确的调用对象的析构函数,一般要求具有层次结构的顶级类定义其析构函数为虚函数。因为在delete一个抽象类指针时候,必须要通过虚函数找到真正的析构函数。
mznewfacer
·
2011-10-24 14:00
析构函数(√)、纯
虚析构函数
(√)、虚构造函数(X)
来自于:http://www.cnblogs.com/chio/archive/2007/09/10/888260.html一.
虚析构函数
我们知道,为了能够正确的调用对象的析构函数,一般要求具有层次结构的顶级类定义其析构函数为虚函数
meimeng515
·
2011-10-20 09:00
c++
虚析构函数
public: base() { } base(int_name) { name=_name; malloc_buf=NULL; } /*这里的父类
虚析构函数
baijd_ss
·
2011-10-19 11:00
虚析构函数
虚析构函数
自动调用基类部分的西沟函数对基类的设计有重要影响。 删除指向动态分配对象的指针时,需要运行西沟函数在释放对象的内存之前清楚对象。
jokes000
·
2011-10-16 18:00
虚析构函数
作用示例
关于
虚析构函数
作用示例.
banxi1988
·
2011-10-13 00:00
C++
delete
虚析构函数
C++初步之命名空间,类,类的静态方法,函数模板,
虚析构函数
在学习C++的时候,开始使用using namespace std; 但是对于命名空间不是很了解.后来在学习C#的时候多了些了解. 但是对于程序包而言主要还是在Java中对于Java包的理解来理解的. 我自己写了个涉及题目上概念的一个简单的CPP程序.如下: 首先声明一点,我是在Ubuntu下用Eclipse的Linuxtool来开发的. 首先是头文件, /* * Util
banxi1988
·
2011-10-12 17:00
eclipse
C++
namespace
ubuntu
C++中
虚析构函数
的作用
我们知道,用C++开发的时候,用来做基类的类的析构函数一般都是虚函数。可是,为什么要这样做呢?下面用一个小例子来说明: 有下面的两个类:class ClxBase{public: ClxBase() {}; virtual ~ClxBase() {}; virtual void DoSomething() { cout DoSomething();delete pT
duanyipeng
·
2011-10-02 17:00
C++
存储
Class
编译器
output
destructor
关于
虚析构函数
的一个问题
关于
虚析构函数
的一个问题(vc6.0)effectivec++中14条:基类的析构函数应该为虚函数一般的: class Base { public: void fun
DivineChen
·
2011-09-26 17:05
C++
职场
休闲
虚析构函数
析构函数可以是纯虚函数
在某些类里声明纯
虚析构函数
很方便。纯虚函数将产生抽象类——不能实例化的类(即不能创建此类型的对象)。有些时候,你想使一个类成为抽象类,但刚好又没有任何纯虚函数。怎么办?
wangsifu2009
·
2011-09-17 16:00
工作
Class
编译器
c++ 多态 虚函数 析构函数 抽象类(转)
本文转自:http://blog.sina.com.cn/s/blog_4c88d09a0100l9p5.html1.析构函数和
虚析构函数
如果基类的析构函数是虚的,那么它的派生类的析构函数都是虚的这将导致
ddkxddkx
·
2011-09-05 14:00
C++
c
工作
function
Class
编译器
(原文)Effective C++条款7:为多态基类声明VIRTUAL析构函数
今天碰到一个bug,查了半天发现是某位虚基类没有定义
虚析构函数
,delete时导致派生类没有正确释放资源,遂从网上搜到一篇文章,留个记号关于virtualdesctructor的详细讨论。
wallwind
·
2011-09-01 21:00
纯
虚析构函数
出处:http://www.cnblogs.com/rollenholt/articles/1907418.html 在某些类里声明纯
虚析构函数
很方便。
helonSY
·
2011-08-23 14:00
c++只在基类中用
虚析构函数
的原因
C++的多态性是通过虚函数来实现的,虚函数的出现使得动态链接成为可能。基于构造函数的特点,不能将构造函数定义为虚函数,但可以将析构函数定义为虚函数。一般情况:当派生类的对象从内存中撤销时,会先调用派生类的析构函数,然后自动调用基类的析构函数,如此看来析构函数也没有必要定义为虚函数。但如考虑如下这种情况,如果使用基类指针指向派生类的对象,而这个派生类对象恰好是用new运算创建的,这种情况下会
txgc1009
·
2011-08-10 11:00
C++
delete
Class
编译器
output
destructor
虚函数,
虚析构函数
,纯虚函数,抽象类
1.虚函数1.1虚函数的作用虚函数的作用是允许在派生类中重新定义与基类同名的函数,并且可以通过基类指针或引用来访问基类和派生类中的同名函数。classTime{ public: Time(int=0,int=0,int=0); voidshow(); protected: inthour; intmin; intsec;}; classLocalTime:publicTime{
RTY 实践出真知
·
2011-07-26 06:00
虚析构函数
虚析构函数
一 、为何要单独讨论
虚析构函数
?虚函数在类中到底有什么作用?
weihe6666
·
2011-07-11 10:00
C++
虚函数,
虚析构函数
,纯虚函数,抽象类
1.虚函数1.1虚函数的作用虚函数的作用是允许在派生类中重新定义与基类同名的函数,并且可以通过基类指针或引用来访问基类和派生类中的同名函数。classTime{ public: Time(int=0,int=0,int=0); voidshow(); protected: inthour; intmin; intsec;}; classLocalTime:publicTime{
txgc1009
·
2011-07-05 17:00
String
delete
Class
编译器
fun
destructor
虚函数,
虚析构函数
,纯虚函数,抽象类
1.虚函数 1.1虚函数的作用 虚函数的作用是允许在派生类中重新定义与基类同名的函数,并且可以通过基类指针或引用来访问基类和派生类中的同名函数。 class Time{ public: Time(int=0,int=0,int=0); void show(); protected: int hour; int min; int se
isiqi
·
2011-07-05 17:00
抽象类
C++ 基础之this指针和虚函数
看了starlee的三篇文章浅析C++中的this指针,浅析C++中虚函数的调用及对象的内部布局 和C++中
虚析构函数
的作用,做一个简单的总结给自己看。
lilypp
·
2011-07-05 17:00
C++
c
优化
汇编
delete
编译器
c++ virtual
虚析构函数
资源释放的讨论
关于c++ virtual,析构函数的讨论已经挺多了,参见 http://zxjgoodboy.blog.sohu.com/61482463.html http://blog.csdn.net/zoukh/article/details/16624 http://blog.csdn.net/han_348154920/article/details/5944351 http://hi.ba
·
2011-07-05 00:00
virtual
关于
虚析构函数
为说明问题,首先请查看如下代码,并思考一个问题,“以下代码为什么会出现内存泄露?”。 classtest{public:test(constchar*&bb=0){b=newchar[sizeof(bb)];strcpy(b,bb);}virtualvoida()=0;~test(){if(b)deleteb;b=0;}private:char*b;};classtest1:publictest{
willnow
·
2011-06-27 16:00
编程
c
工作
delete
Class
编译器
C++中
虚析构函数
的作用
我们知道,用C++开发的时候,用来做基类的类的析构函数一般都是虚函数。可是,为什么要这样做呢?下面用一个小例子来说明: 有下面的两个类:classClxBase{public: ClxBase(){}; virtual~ClxBase(){}; virtualvoidDoSomething(){coutDoSomething();deletepTest; 的输出结果是:D
lhzhang1985
·
2011-06-14 22:00
Inside the C++ Object Model 学习笔记 第五章构造 解构 拷贝语意学
,拷贝少量 首先书中给出了一个例子classAbstract_base{public: virtual~Abstract_base()=0;//纯
虚析构函数
virtualvoidinterface()const
lilin_xdu
·
2011-06-10 10:00
C++
object
Class
Constructor
initialization
destructor
[转载]C++中
虚析构函数
的作用
http://blog.csdn.net/starlee/archive/2006/03/09/619827.aspx 我们知道,用C++开发的时候,用来做基类的类的析构函数一般都是虚函数。可是,为什么要这样做呢?下面用一个小例子来说明: 有下面的两个类:classClxBase{public: ClxBase(){}; virtual~ClxBase(){}; virtua
randyjiawenjie
·
2011-05-20 14:00
虚函数 析构函数 抽象类
1.析构函数和
虚析构函数
如果基类的析构函数是虚的,那么它的派生类的析构函数都是虚的 这将导致:当派生类析构的时候,它的所有的基类的析构函数都将得到调用 否则,只调用派生类的析构函数
guiyinzhou
·
2011-05-09 15:00
Simple Items
● Item 7 多态基类中将析构函数声明为虚拟 1> 多态基类应该声明
虚析构函数
。如果一个类有任何虚函数,它就应该有一个
虚析构函数
。 2> 纯
虚析构函数
也必须有函数体。
wapysun
·
2011-04-21 09:00
simple
Simple Items
● Item 7 多态基类中将析构函数声明为虚拟 1> 多态基类应该声明
虚析构函数
。如果一个类有任何虚函数,它就应该有一个
虚析构函数
。 2> 纯
虚析构函数
也必须有函数体。
isiqi
·
2011-04-21 09:00
simple
Simple Items
●Item7多态基类中将析构函数声明为虚拟 1>多态基类应该声明
虚析构函数
。如果一个类有任何虚函数,它就应该有一个
虚析构函数
。2>纯
虚析构函数
也必须有函数体。否则linker报错。
ba_jie
·
2011-04-21 09:00
c++ 多态 虚函数 析构函数 抽象类(ZZ)
析构函数和
虚析构函数
如果基类的析构函数是虚的,那么它的派生类的析构函数都是虚的 &
signup009
·
2011-03-22 22:00
数据结构
C++
c
C#
vc++
C++
虚析构函数
的问题
C++
虚析构函数
的问题一.
虚析构函数
说明 一般来说,如果有被子类继承的类,尽可能的加上关键字virtual,特别是以下情况,可能没有调用子类的析构造成内存泄露.二.代码示例:#include #include
 C++ 技术中心
·
2011-03-11 15:00
上一页
9
10
11
12
13
14
15
16
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他