Redian新闻
>
为什么derived object没有vptr?
avatar
为什么derived object没有vptr?# Programming - 葵花宝典
b*g
1
看到tax lien, 不知道是什么东西,那位懂行的人介绍一下,谢谢
avatar
l*n
2
宾州(近新泽西)地区双职工家庭,诚聘有爱心,善烹饪住家保姆,照顾四岁儿童,从校
车接9岁学童,料理简单家务,做晚饭。 4岁男孩白天上幼儿园,您独自在家有自己空
间。 有独立大卧室。
电917-432-9913.
五月中开始。
avatar
J*i
3
【 以下文字转载自 ebiz 讨论区 】
发信人: coarsening (草枯鹰眼疾,雪尽马蹄轻), 信区: ebiz
标 题: 两万吨燃油 "这是买命钱" ZZ
发信站: BBS 未名空间站 (Thu Mar 17 12:37:12 2011, 美东)
http://www.here4news.com/thread/3329179
刚才CCAV新闻,应日本政府请求,中国政府继三千万人民币和派遣救援队之后再度援助
日本1万吨汽油和1万吨柴油,共计2万吨燃油,由中石油和中石化执行。
据龙空某位网友的分析,这是买命钱。
http://www.sbanzu.com/topicdisplay.asp?TopicID=3597128&BoardID=
3月16日,为保障中国国际救援队工作的顺利和队员的人身安全,中国地震局准备了20
套核防护服紧急送往日本[32]。同日,中国政府对日本提供2万吨燃油(1万吨汽油和1
万吨柴油)的紧急无偿援助[33],接送中国人的车辆在日本加油站可不受限制的加油,
并可使用已封闭的高速公路。至此,中国大陆对日本的物质援助已达2.5亿元人民币。
而且中国没捐油以前,大使馆接灾区的中国同胞的撤侨只可以限量加油,可能来回的车
油都不够。捐了以后,中国撤侨车辆就可以随便加而且还能走封闭道路。
avatar
d*w
4
brian austin green是不是现在什么也不干
avatar
f*e
5
rt
avatar
x*i
6
都说女人心海底针,真句话真的不分国界啊。大家都来说说看,女孩子说“不要”的时
候到底是要不要?我都快要被这个问题逼疯啦!
在国内的时候吧,有一次和妹子上街,她看上一款价值不菲的项链,我看她喜欢就
问她要不要,她看了看价格果(犹)断(豫)的告诉我太贵了,这么多钱还不如一起去
吃几顿大餐。我心里想挺好,妹子还挺顾家,忍不住还亲了一口。悲剧的是,这事过了
没两个月,她就跟我分手了,理由是我太抠,从钱上面就能看出我不爱她。我去,天地
良心啊!说我抠?是她什么都不要好吧!!我欲哭无泪,后经高人指点说,凡是女人说
“不要”,那就是“要”,尤其是在买东西的时候。

我长记性了,这不,这次谈的女朋友跟她逛街,她看上了一件连衣裙,试了之后很犹
豫要不要买,后来还是拉着我出了店。我一看这不正是我表现的时候嘛,自己改天又跑
回去给她买了她试的那一件作为礼物想给她个惊喜。没想到的是,她看见裙子并没有很
高兴,反而告诉我说她之所以不买是因为想起来班上有个姑娘有一样的裙子,她不想撞
衫,所以,让我赶紧去退了。还叮嘱我不要给她随便买她不喜欢的东西,喜欢的话她会
给我说的云云。
我彻底崩溃,我都开始怀疑我的智商了,我是听不懂人话还是你们都没有说人话??
avatar
P*e
7
class A
{
int i;
public:
virtual void f(){}
};
class DerivedA: public A
{
int j;
public:
virtual void f(){}
virtual void ff(){}
};
DerivedA da;
为什么da里面没有一个vptr是DerivedA?
da 的layout是 :
[
i
A.vptr
j
// 为什么这里没有DerivedA.vptr???
]
avatar
g*f
8
他们俩我觉得还挺般配的

【在 d**w 的大作中提到】
: brian austin green是不是现在什么也不干
avatar
f*e
9


【在 f*********e 的大作中提到】
: rt
avatar
J*k
10
买不了贵的不会买些便宜的啊。傻
avatar
P*e
11
我大概知道为什么没有额外的vptr in da
不过这样的情况,是怎么处理的?
A a = da;
因为, a 和 da里面 vptr地址是不一样的.这样怎么能保证integrity of subobject in
da.

【在 P********e 的大作中提到】
: class A
: {
: int i;
: public:
: virtual void f(){}
: };
: class DerivedA: public A
: {
: int j;
: public:

avatar
w*8
12
fox现在整形整得都不成人型了。。。一小姑娘本来长得挺好看的,干嘛这么折腾呢!?

【在 d**w 的大作中提到】
: brian austin green是不是现在什么也不干
avatar
s*0
13
赫赫 真的机器猫 。。。

【在 f*********e 的大作中提到】

avatar
u*b
14
母机器人也需要逛街?
avatar
X*r
15
我先问你A a = da;这句是什么?

in

【在 P********e 的大作中提到】
: 我大概知道为什么没有额外的vptr in da
: 不过这样的情况,是怎么处理的?
: A a = da;
: 因为, a 和 da里面 vptr地址是不一样的.这样怎么能保证integrity of subobject in
: da.

avatar
P*e
16
继承object转换到父类,来检验da有没有完整的父类subobject

【在 X****r 的大作中提到】
: 我先问你A a = da;这句是什么?
:
: in

avatar
X*r
17
For single non-virtual inheritence like this, da's vptr points
to DeriveA's vtable, which is compatible with A's vtable.

【在 P********e 的大作中提到】
: class A
: {
: int i;
: public:
: virtual void f(){}
: };
: class DerivedA: public A
: {
: int j;
: public:

avatar
P*e
18
i'm not sure what do you mean by compatible?

【在 X****r 的大作中提到】
: For single non-virtual inheritence like this, da's vptr points
: to DeriveA's vtable, which is compatible with A's vtable.

avatar
X*r
19
For every virtual function of A, its position in A's vtable
is the same as the position of the same or overridden function
of DerivedA in DerivedA's vtable.

【在 P********e 的大作中提到】
: i'm not sure what do you mean by compatible?
avatar
P*e
20
谢谢
那这个问题还是不太清楚:
A a = da;
上面这个怎么保证,da里面的subobject的完整性,下面这样理解对吗?
compiler要做:
a.i = da.i;
a.vptr = A:vptr;???这样吗?

For every virtual function of A, its position in A's vtable
is the same as the position of the same or overridden function
of DerivedA in DerivedA's vtable.

【在 X****r 的大作中提到】
: For every virtual function of A, its position in A's vtable
: is the same as the position of the same or overridden function
: of DerivedA in DerivedA's vtable.

avatar
P*e
21
如果base declare any virtual function, compiler will synthesize a copy ctor
to do it.
now it's clear. thanks x.

【在 P********e 的大作中提到】
: 谢谢
: 那这个问题还是不太清楚:
: A a = da;
: 上面这个怎么保证,da里面的subobject的完整性,下面这样理解对吗?
: compiler要做:
: a.i = da.i;
: a.vptr = A:vptr;???这样吗?
:
: For every virtual function of A, its position in A's vtable
: is the same as the position of the same or overridden function

avatar
X*r
22
对。
A a = da;就是调用隐含定义的A::A(const A& other),this为&a,
other为da里的a子对象。
这个copy constructor和A的其他所有constructor一样,把this的vptr指向
A的vtable。

【在 P********e 的大作中提到】
: 谢谢
: 那这个问题还是不太清楚:
: A a = da;
: 上面这个怎么保证,da里面的subobject的完整性,下面这样理解对吗?
: compiler要做:
: a.i = da.i;
: a.vptr = A:vptr;???这样吗?
:
: For every virtual function of A, its position in A's vtable
: is the same as the position of the same or overridden function

avatar
P*e
23
我开始没把他们联系起来,觉得子类的vptr好像不对。。。

【在 X****r 的大作中提到】
: 对。
: A a = da;就是调用隐含定义的A::A(const A& other),this为&a,
: other为da里的a子对象。
: 这个copy constructor和A的其他所有constructor一样,把this的vptr指向
: A的vtable。

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。