2004-10-13 |
|
10:54:09 |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
好了,继续刚才我们的问题 |
2004-10-13 |
|
10:54:14 |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
多重继承的问题 |
2004-10-13 |
|
10:55:12 |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
class a, class b, class c, class d 四个类,继承关系是: a --> b --> c --> d 那么,类D是不是具有了A的所有成员? |
2004-10-13 |
|
10:55:14 |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
说 |
2004-10-13 |
|
10:55:39 |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
这是肯定的 |
2004-10-13 |
|
10:55:51 |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
应该是public和保护成员 |
2004-10-13 |
|
10:56:02 |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
private的没有? |
2004-10-13 |
|
10:56:11 |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
呃,等会 |
2004-10-13 |
|
10:56:17 |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
好像不是这样 |
2004-10-13 |
|
10:57:28 |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
private的不能直接访问 |
2004-10-13 |
|
10:58:08 |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
那要看继承的方式,好象是public继承的,那么private成员就是private,应该是隐藏的吧 |
2004-10-13 |
|
10:58:45 |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
头大 |
2004-10-13 |
|
10:58:56 |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
继承在实际应用中用得很少 |
2004-10-13 |
|
10:59:04 |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
这个确实比较麻烦,那天晚上我在寝室搞了半天,呵呵 |
2004-10-13 |
|
10:59:07 |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
我都晕了 |
2004-10-13 |
|
11:00:21 |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
好,你去吃饭吧,估计你饿了.. |
2004-10-13 |
|
11:00:28 |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
恩,等我去找你再讨论... |
2004-10-13 |
|
11:00:44 |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
等会 |
2004-10-13 |
|
11:00:49 |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
现在也吃不下 |
2004-10-13 |
|
11:00:58 |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
呵呵,还不饿,服了 |
2004-10-13 |
|
11:01:12 |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
别饿坏了,呵 |
2004-10-13 |
|
11:01:28 |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
成习惯了 |
2004-10-13 |
|
11:01:52 |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
那么假如有多重继承的话,任何一重继承是private,那么所有成员都是隐藏的,那么后面的派生类,不是无法访问了? |
2004-10-13 |
|
11:03:16 |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
如果你打算一个类以后被继承的话,你肯定会留出一定的接口让后面的派生类访问的吧 |
2004-10-13 |
|
11:03:16 |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
这是我的理解 |
2004-10-13 |
|
11:04:08 |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
那么说基类必须有一个内部的成员函数来操纵里面的成员变量了 |
2004-10-13 |
|
11:05:05 |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
可能是吧 |
2004-10-13 |
|
11:05:20 |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
那么这里涉及一个问题 |
2004-10-13 |
|
11:05:39 |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
有时候想从一个类继承,为的并不是访问那个类的成员,而是从该类获得一定的功能而已 |
2004-10-13 |
|
11:05:52 |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
你想,既然我是继承基类的,那么我就拥有了所有的属性和方法,那么既然那些东西是我自己的,为什么我不能访问? |
2004-10-13 |
|
11:07:52 |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
这个理由有点狡辩的味道,继承只是一种扩展类功能的机制,从来就没有人说继承就是"拥有了所有的属性和方法"的吧 |
2004-10-13 |
|
11:08:40 |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
那么说我要访问基类继承来的成员,必须它留有接口,并且是public的,那么继承有啥用... |
2004-10-13 |
|
11:10:36 |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
事实上,这种类继承只是继承的一种形式而已,当然用处是有的,例如实现多态,实现功能扩展是很方便的,其他的继承方式还有: |
2004-10-13 |
|
11:10:49 |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
例如,把一个类的实例做为你的类的成员之一 |
2004-10-13 |
|
11:11:14 |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
把实例做成,那就是把对象做自己的成员了 |
2004-10-13 |
|
11:11:18 |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
在com中就有这种继承方式的应用 |
2004-10-13 |
|
11:11:43 |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
对 |
2004-10-13 |
|
11:11:47 |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
好晕,呵呵,难怪不要多重继承 |
2004-10-13 |
|
11:12:01 |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
要是我,连继承都不要了 |
2004-10-13 |
|
11:12:32 |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
呵 |
2004-10-13 |
|
11:12:52 |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
我用继承的话,最多也是用来实现多态,也就是通用化操作. |
2004-10-13 |
|
11:15:17 |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
这几个问题一定要找你问清楚 |
2004-10-13 |
|
11:15:56 |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
汗 |
2004-10-13 |
|
11:16:20 |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
一个是各种不同继承方式的继承结果还有是刚才说的派生类里面的构造函数最后就是多重继承 |
2004-10-13 |
|
11:16:24 |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
其实我也搞不明白的,如果没实际应用,我很少去深究 |
2004-10-13 |
|
11:17:01 |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
我不想深究,但我要至少明白怎么回事 |
2004-10-13 |
|
11:17:44 |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
构造函数是多个的吧 |
2004-10-13 |
|
11:17:54 |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
先不说多个 |
2004-10-13 |
|
11:18:29 |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
就说假如基类有构造函数,就一重继承的话,那么这个派生类的构造函数怎么搞? |
2004-10-13 |
|
11:18:42 |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
好像先是调用最基类的构造函数,然后是派生类的构造函数,而析造函数是反过来 |
2004-10-13 |
|
11:19:05 |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
晕.... |
2004-10-13 |
|
11:19:21 |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
跟平常一样的吧 |
2004-10-13 |
|
11:19:43 |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
应该怎么做就怎么做呗 |
2004-10-13 |
|
11:19:51 |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
那么我派生类里面不管基类的构造函数,自己定义一个,会不会跟基类有关系? |
2004-10-13 |
|
11:19:57 |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
有什么问题,? |
2004-10-13 |
|
11:19:58 |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
就是会不会受到基类的影响 |
2004-10-13 |
|
11:20:02 |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
举个例? |
2004-10-13 |
|
11:20:53 |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
比如: class a { void a(){} } class b: public a { void b(){} } |
2004-10-13 |
|
11:22:53 |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
那么这个类b中的构造函数会不会受到a的影响. |
2004-10-13 |
|
11:23:07 |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
构造函数是每个类都有的 |
2004-10-13 |
|
11:23:08 |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
也就是说如果你不定义b(){}那编译器也会给你做一个 |
2004-10-13 |
|
11:23:10 |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
但在生成class b的实例的时候 |
2004-10-13 |
|
11:23:14 |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
会自动先调用a(),然后再调用b |
2004-10-13 |
|
11:23:14 |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
还有一种情况是带参数的构造函数 |
2004-10-13 |
|
11:23:29 |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
停停... |
2004-10-13 |
|
11:23:34 |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
这里不明白了 |
2004-10-13 |
|
11:24:24 |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
你的意思是说,假如B没有构造函数,那么就会先调用A的构造函数来初始化B |
2004-10-13 |
|
11:24:55 |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
带参数的构造函数,好像必须在派生类中明确调用基类的构造函数 |
2004-10-13 |
|
11:25:26 |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
例如MFC中的cdialog |
2004-10-13 |
|
11:25:26 |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
CAdsDlg::CAdsDlg(CWnd* pParent /*=NULL*/) : CDialog(CAdsDlg::IDD, pParent) |
2004-10-13 |
|
11:27:02 |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
所谓的影响指的是什么 |
2004-10-13 |
|
11:27:19 |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
不对 |
2004-10-13 |
|
11:27:38 |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
是不是会调用A的构造函数来初始化B |
2004-10-13 |
|
11:28:05 |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
无论B有没有构造函数都会调用A的构造函数的 |
2004-10-13 |
|
11:28:09 |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
不是 |
2004-10-13 |
|
11:28:32 |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
调用A的构造函数来初始化A |
2004-10-13 |
|
11:28:32 |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
而A是B的一部分 |
2004-10-13 |
|
11:28:37 |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
无论B有没有构造函数都会调用A的构造函数的??? |
2004-10-13 |
|
11:29:15 |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
应该B继承了A,A的那些功能要正常使用当然得初始化的 |
2004-10-13 |
|
11:29:38 |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
哦,然后呢 |
2004-10-13 |
|
11:29:57 |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
而你是B的作者却不是A的作者,你当然不知应该如何去初始化A,所以,A的初始化工作当然还是交给A的构造函数去做 |
2004-10-13 |
|
11:30:21 |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
然后就初始化你自己的类B了 |
2004-10-13 |
|
11:31:55 |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
你可以做个实验,在构造函数中printf一句话,看看是否这样 |
2004-10-13 |
|
11:32:14 |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
恩,你这么一说,我有点明白了 |
2004-10-13 |
|
11:32:16 |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
再说说 |
2004-10-13 |
|
11:32:46 |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
== |
2004-10-13 |
|
11:34:14 |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
那么类B里面的继承的成员已经初始化了,那么还有部分B自己的的成员没有初始化呀 |
2004-10-13 |
|
11:35:25 |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
所以就是你自己B的构造函数来初始化啊 |
2004-10-13 |
|
11:36:25 |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
class cbase { public: cbase() { printf("base ctor\n"); } ~cbase() { printf("base dtor\n"); } }; class d:Public cbase { public: d() { printf("d ctor\n"); } ~d() { printf("d dtor\n"); } }; int main(int argc, char* argv[]) { d* pd = new d; delete pd; getchar(); return 0; } |
2004-10-13 |
|
11:36:40 |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
base ctor d ctor d dtor base dtor |
2004-10-13 |
|
11:38:27 |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
都没执行,就有输出? |
2004-10-13 |
|
11:38:57 |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
d* pd = new d;//这时构造了d,就会自动调用base ctor和d ctor |
2004-10-13 |
|
11:39:09 |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
delete pd;//这时自动调用析构函数 |
2004-10-13 |
|
11:39:58 |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
那么说这个基类的析构函数最后执行了 |
2004-10-13 |
|
11:40:35 |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
对的 |
2004-10-13 |
|
11:41:11 |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
为什么? |
2004-10-13 |
|
11:41:28 |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
输出结果应该是 base ctor base dtor d ctor d dtor |
2004-10-13 |
|
11:41:31 |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
才对嘛 |
2004-10-13 |
|
11:41:55 |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
不对 |
2004-10-13 |
|
11:42:25 |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
如果基类在你的最后类还没析构就析构了 |
2004-10-13 |
|
11:42:35 |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
你的最后类怎么用基类的功能? |
2004-10-13 |
|
11:42:40 |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
吃饭去 |
2004-10-13 |
|
11:42:45 |
|
特洛伊(MS,只想一生跟你走.可怜的MFCer,ASPer,dotNETer...) |
|
heiyeluren〖比你漂亮的,没你可爱,比你可爱的,没你聪明,既漂亮,可爱又聪明的,也没你那么爱我!〗(co) |
|
回来再讨论 |