打印

虚构函数问题

[复制链接]
1305|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xsgy123|  楼主 | 2012-7-17 21:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
火箭球迷| | 2012-7-17 22:05 | 只看该作者
1.任何函数都不能调用类的构造函数,析构函数的。你在这里调用了~Sampe()构造函数,当然是错误的,加了this也不行,这是规定。
2.这里应该是类型定义,定义了一个指向函数OF的指针alloc_func

使用特权

评论回复
板凳
dfsa| | 2012-7-17 22:11 | 只看该作者
虚构函数不能在任何函数里面调用,他的默认调用就是 你delete obj 以后会自动调用。所以也不建议你家this 调用
另外typedef voidpf (*alloc_func) OF((voidpf opaque, uInt items, uInt size));
我不才,没有看出来。不知道 OF 是干啥的,如果吧OF去掉 就是一个函数指针的声明。

使用特权

评论回复
地板
pkat| | 2012-7-17 22:20 | 只看该作者
在通常写代码的过程中,在一个类的外部,不能显式调用析构函数,这个是基本常识,因为这样对象会被析构,但该对象所占用的内容并不能回收。

在一个类的成员函数中,调用析构函数就更加说不通了,你想想,要是那个成员函数能够成功被调用,那么必须存在相应的一个对象,而在该成员函数中,又要析构该对象,这样对象就不存在了,对象都不存在了,你还怎么调用那个成员函数呢?在概念上是一个死循环。

使用特权

评论回复
5
秋天落叶| | 2012-7-17 22:25 | 只看该作者
为什么要加this,析构函数的特性吗。
因为其他函数是完全不需要加的嘛。
对这个问题的话,应该是C++的语法规定。

比如规定了类的成员函数不能直接使用类的析构函数。
如果加了一个this,那么就是类似通过例外一个途径访问到其析构函数了。所以就通过了。


析构函数也不一定要析构东西啊。
我直接在里面输出一段字符串也没问题,甚至当构造函数用都可以吧。里面的操作都是我程序员自己定义的。

使用特权

评论回复
6
txcy| | 2012-7-18 21:32 | 只看该作者
建议LZ找本C++的书,把析构函数那块再看看

使用特权

评论回复
7
无冕之王| | 2012-7-18 21:41 | 只看该作者
1.任何函数都不能调用类的构造函数,析构函数的。你在这里调用了~Sampe()构造函数,当然是错误的,加了this也不行,这是规定。
2.这里应该是类型定义,定义了一个指向函数OF的指针alloc_func ...
火箭球迷 发表于 2012-7-17 22:05

分析的很清楚了

使用特权

评论回复
8
baidudz| | 2012-7-18 21:55 | 只看该作者
以前学习C++的时候,这个地方也是没弄明白

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

229

主题

2603

帖子

1

粉丝