Redian新闻
>
"生物家属倒苦水" 坑实际上要表达的是:
avatar
"生物家属倒苦水" 坑实际上要表达的是:# Biology - 生物学
A*8
1
我就发了一个帖子说有一些学生(包括美国的学生)写信的时候没有基本的礼貌,然后
很多人就跳出来说;
别以为做教授就高人一等了
别以为做教授就是课葱了
做教授就是个穷酸的职业
做教授都社交能力低都是loser
你就一个自卑的臭老九
........
感觉就像是文革斗臭老九的话语,真不知道这些人怎么这么一副心态?
avatar
R*e
2
哎,team里面都是老美,说话巨快。
根本跟不上,技术讨论好吃亏啊。
郁闷
avatar
t*r
3
反正夏天以后就是秋天。。。至少比俺的破罐子好点。。。
也是旧货。。。最近忙娃都来不及。。。
另外伴奏是下载的。。。俺就是陪个人声。。。
http://app.box.com/s/9rla6wqdhsckf8s0yjl1
avatar
c*n
4
【 以下文字转载自 Hubei 讨论区 】
发信人: labiker (语不惊人死不休之 Paul), 信区: Hubei
标 题: 武警用大头针纠正颈姿 (转载)
发信站: BBS 未名空间站 (Fri Sep 11 15:49:12 2009, 美东)
发信人: labiker (语不惊人死不休之 Paul), 信区: LosAngeles
标 题: 武警用大头针纠正颈姿
发信站: BBS 未名空间站 (Fri Sep 11 15:48:50 2009, 美东)
有人要试试吗
avatar
f*8
5
avatar
m*a
7
Foo 是一个object
Foo &myFoo=*(new Foo());

Foo myFoo=*(new Foo());
myFoo都是Foo的一个reference吧?
avatar
A*r
8
"生物家属倒苦水" 坑实际上要表达的是:生物wsn只能找到gay作老而且连gay都对生物wsn不满意,可见生物的悲惨出路.
avatar
g*i
9
别拿国内老师的心态在美国当老师, 在这个美丽的土地上, 人人平等, 职业平等
我老美同学喊她爹都是 first name, 难到她就没礼貌了? 等你适应了美国的文化, 你就感觉美国文化的好了。
avatar
r*y
10
感觉只老实本分干活, 没人care
要做 lead, architect 及以上, 肯定难受.
meeting, presentation 都费劲

【在 R**e 的大作中提到】
: 哎,team里面都是老美,说话巨快。
: 根本跟不上,技术讨论好吃亏啊。
: 郁闷

avatar
a*m
11
不错!
这首是jazz?要是配saxophone 就好了。不过,要是在意大利,就配小号吧。

★ 发自iPhone App: ChineseWeb 8.7

【在 t*******r 的大作中提到】
: 反正夏天以后就是秋天。。。至少比俺的破罐子好点。。。
: 也是旧货。。。最近忙娃都来不及。。。
: 另外伴奏是下载的。。。俺就是陪个人声。。。
: http://app.box.com/s/9rla6wqdhsckf8s0yjl1

avatar
r*c
12
还被更弱的给m了
avatar
w*g
13
芙蓉姐姐的大PP么?

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

avatar
b*x
14
地区改成中国后还不能显示中文, 那肯定是你哪里搞错了, 或那书的format不对。

【在 m****0 的大作中提到】
: 地区已经改成中国了,还是不能显示中文。按这个方法,update失败了。
: http://www.mobileread.com/forums/showthread.php?t=88004
: 有没有知道怎么搞的,告诉我一声。谢谢

avatar
x*q
15
第二个是个copy。memory leak

【在 m*********a 的大作中提到】
: Foo 是一个object
: Foo &myFoo=*(new Foo());
: 和
: Foo myFoo=*(new Foo());
: myFoo都是Foo的一个reference吧?

avatar
y*e
16
你这个表达了对gay的歧视,不好

物wsn不满意,可见生物的悲惨出路.

【在 A*****r 的大作中提到】
: "生物家属倒苦水" 坑实际上要表达的是:生物wsn只能找到gay作老而且连gay都对生物wsn不满意,可见生物的悲惨出路.
avatar
r*7
17
hehe. this forum is a biased sample. just ignor them.
say what you think and what concerns you. sometime you get meaningful
discussion but don't be surprised if all you get is nonesense.
avatar
R*e
18
还lead呢,哎,干活都不行。
主要是相比别人语言上吸收的信息太慢。

【在 r***y 的大作中提到】
: 感觉只老实本分干活, 没人care
: 要做 lead, architect 及以上, 肯定难受.
: meeting, presentation 都费劲

avatar
t*r
19
俺从前录过萨克斯风。。。不过现在不会了。。。放个箱底录音吧:
http://app.box.com/shared/zl24b5etxl

【在 a******m 的大作中提到】
: 不错!
: 这首是jazz?要是配saxophone 就好了。不过,要是在意大利,就配小号吧。
:
: ★ 发自iPhone App: ChineseWeb 8.7

avatar
m*0
20
书的format 还有不对的?理论上是中文的你就应该能显示啊.
地区改成中国 没有错,我最上头的时间都是: 上午几点几分
avatar
f*t
21
应该有rvalue优化吧?

【在 x********q 的大作中提到】
: 第二个是个copy。memory leak
avatar
s*y
22
Bio science is a very gay major anyway.

物wsn不满意,可见生物的悲惨出路.

【在 A*****r 的大作中提到】
: "生物家属倒苦水" 坑实际上要表达的是:生物wsn只能找到gay作老而且连gay都对生物wsn不满意,可见生物的悲惨出路.
avatar
z*2
23
Your 老美同学 is a son of bitch.

你就感觉美国文化的好了。

【在 g******i 的大作中提到】
: 别拿国内老师的心态在美国当老师, 在这个美丽的土地上, 人人平等, 职业平等
: 我老美同学喊她爹都是 first name, 难到她就没礼貌了? 等你适应了美国的文化, 你就感觉美国文化的好了。

avatar
D*U
24
想往上混 难
avatar
L*e
25
嗓音很棒,这歌我也喜欢

【在 t*******r 的大作中提到】
: 反正夏天以后就是秋天。。。至少比俺的破罐子好点。。。
: 也是旧货。。。最近忙娃都来不及。。。
: 另外伴奏是下载的。。。俺就是陪个人声。。。
: http://app.box.com/s/9rla6wqdhsckf8s0yjl1

avatar
S*r
26
直接装多看吧
avatar
m*a
27
多谢。终于懂了。
真是太坑了,java 的实现多简单啊
Foo myFoo=new Foo();

c++的
Foo &myFoo=*(new Foo());

【在 x********q 的大作中提到】
: 第二个是个copy。memory leak
avatar
w*e
28
晕。。。此话怎讲?

【在 s******y 的大作中提到】
: Bio science is a very gay major anyway.
:
: 物wsn不满意,可见生物的悲惨出路.

avatar
A*8
29
我都说过好几次了,再给你重复一遍吧,先把我的帖子看清楚了再批评别人。
第一:有礼貌不等于不平等。(我写信给我不认识的教授的时候说Dear Prof Wen只是
一个礼貌问题,没有说因为称呼别人教授就把自己贬低了)
第二:美国人的做法不都是有礼貌的。很多美国的年轻人现在都变得很没有教养没有礼
貌了。从历史的角度来说六七十年代的学生运动嬉皮士运动造就现在这个形势。那个时
候学生的特点就是反权威,然后大学教授就附和说教授不是什么东西,那个时候的学生
现在都是我们教的学生的家长,可想而知,这种反权威教育的矫枉过正就成了人人自己
都是权威。其实那个时候有些美国人的做法给中国的文革没有本质区别。文革毁坏了中
国人的礼仪制度,嬉皮士运动毁坏了美国传统的礼仪制度。礼貌问题就是这样来的。
第三:你要是真正了解美国文化,其实你应该体会到美国还是一个非常有礼貌的国家的
。有些美国人虽然不更你说,但是如果你不够礼貌,人家还是会感觉不爽的。只不过人
家可能觉得是文化差异而不跟你计较了。
第四:我见过的美国人写信,基本上至少得Dear Jiabao,从来没有人直接上来就Hi, I
want to see you to ask you a few questions.
第五:中国的传统难道那么不值得你保留吗?为什么一提到中国你就嗤之以鼻?中国传
统的尊师重教的观念有错吗?你看看Amy Chua人家都大大中国牌呢。美国很多人也现在
提倡对孩子要严加管教。美国教育界的放任自流直接导致了美国学生整体素质的下降,
美国教育界现在已经开始意识到这个问题了。

你就感觉美国文化的好了。

【在 g******i 的大作中提到】
: 别拿国内老师的心态在美国当老师, 在这个美丽的土地上, 人人平等, 职业平等
: 我老美同学喊她爹都是 first name, 难到她就没礼貌了? 等你适应了美国的文化, 你就感觉美国文化的好了。

avatar
r*y
30
技术讨论应该一年半载的就没事了
可怕的是插科打诨的闲扯淡, 除非那天比较high, 俺能不插嘴就不插

【在 R**e 的大作中提到】
: 还lead呢,哎,干活都不行。
: 主要是相比别人语言上吸收的信息太慢。

avatar
y*5
31
最喜歡的一首曲~ 頭一次聽到人聲版呢
另:支持老id,嘻嘻
avatar
p*o
32
你这都是哪儿看来的诡异用法? 还是自己琢磨出来的?

【在 m*********a 的大作中提到】
: 多谢。终于懂了。
: 真是太坑了,java 的实现多简单啊
: Foo myFoo=new Foo();
: 和
: c++的
: Foo &myFoo=*(new Foo());

avatar
p*i
33
酸葡萄啊

物wsn不满意,可见生物的悲惨出路.

【在 A*****r 的大作中提到】
: "生物家属倒苦水" 坑实际上要表达的是:生物wsn只能找到gay作老而且连gay都对生物wsn不满意,可见生物的悲惨出路.
avatar
a*e
34
在国内读大学的时候上过一门外教的课程
第一堂课她就提到了这样的一个问题。
很多中国人认为,美国文化里对于老师,对于长辈直呼其名无所谓。
其实不少美国人还是很重视这点的。
她很明确的和我们说大多数人不喜欢学生或者后辈直呼她名字。
我觉得礼多人不怪总是正确的。见了老师叫Professor,除非他明确说要你直呼其名。

你就感觉美国文化的好了。

【在 g******i 的大作中提到】
: 别拿国内老师的心态在美国当老师, 在这个美丽的土地上, 人人平等, 职业平等
: 我老美同学喊她爹都是 first name, 难到她就没礼貌了? 等你适应了美国的文化, 你就感觉美国文化的好了。

avatar
b*i
35
问题是搞人际关系的时候不就是靠闲扯淡。口语+俚语一大堆,看人家聊得爽,自己又
插不上话,很郁闷。

【在 r***y 的大作中提到】
: 技术讨论应该一年半载的就没事了
: 可怕的是插科打诨的闲扯淡, 除非那天比较high, 俺能不插嘴就不插

avatar
m*a
36
看书看得,比较c和java 语言
主要是学java的

【在 p***o 的大作中提到】
: 你这都是哪儿看来的诡异用法? 还是自己琢磨出来的?
avatar
b*l
37
co-ask

【在 w******e 的大作中提到】
: 晕。。。此话怎讲?
avatar
Y*N
38
关于 Dear Jiabao的问题
我读书的时候问过美国同学
他的建议是非私人朋友,最好不用,太personal了

【在 A*******8 的大作中提到】
: 我都说过好几次了,再给你重复一遍吧,先把我的帖子看清楚了再批评别人。
: 第一:有礼貌不等于不平等。(我写信给我不认识的教授的时候说Dear Prof Wen只是
: 一个礼貌问题,没有说因为称呼别人教授就把自己贬低了)
: 第二:美国人的做法不都是有礼貌的。很多美国的年轻人现在都变得很没有教养没有礼
: 貌了。从历史的角度来说六七十年代的学生运动嬉皮士运动造就现在这个形势。那个时
: 候学生的特点就是反权威,然后大学教授就附和说教授不是什么东西,那个时候的学生
: 现在都是我们教的学生的家长,可想而知,这种反权威教育的矫枉过正就成了人人自己
: 都是权威。其实那个时候有些美国人的做法给中国的文革没有本质区别。文革毁坏了中
: 国人的礼仪制度,嬉皮士运动毁坏了美国传统的礼仪制度。礼貌问题就是这样来的。
: 第三:你要是真正了解美国文化,其实你应该体会到美国还是一个非常有礼貌的国家的

avatar
l*y
39
自己英语就很不好,有时急了还会结巴。让老板看着自己半天发不出音的感觉好差啊……
目前公司没有老中,不知道会不会英语不好被鄙视,哎
avatar
p*o
40
扔了吧, 找本靠谱的看。

【在 m*********a 的大作中提到】
: 看书看得,比较c和java 语言
: 主要是学java的

avatar
d*g
41
不会吧,怎么我认识的几个美国同学喊自己爸妈都是爸爸妈妈的叫。唯一一个喊自己爸
用first name的,后来偶然的机会才知道那是她后爸。

你就感觉美国文化的好了。

【在 g******i 的大作中提到】
: 别拿国内老师的心态在美国当老师, 在这个美丽的土地上, 人人平等, 职业平等
: 我老美同学喊她爹都是 first name, 难到她就没礼貌了? 等你适应了美国的文化, 你就感觉美国文化的好了。

avatar
i*k
42
There is no shortcut. You just have to change yourself.

【在 R**e 的大作中提到】
: 哎,team里面都是老美,说话巨快。
: 根本跟不上,技术讨论好吃亏啊。
: 郁闷

avatar
m*a
43
推荐一本把,最好能下载,买也可以。

【在 p***o 的大作中提到】
: 扔了吧, 找本靠谱的看。
avatar
p*g
44
well,阁下处处洋溢着高人一等的气息,我看大家对你这样不是没有原因。
avatar
y*n
45
Relax and lead them to some topic you are familiar with -- I think it will
help
avatar
p*o
46
C++的书还是Java的书?

【在 m*********a 的大作中提到】
: 推荐一本把,最好能下载,买也可以。
avatar
I*y
47
你说的没错,骂教授的这些人是自取其辱,embarrassing themselves, not you.
just take it easy

【在 A*******8 的大作中提到】
: 我就发了一个帖子说有一些学生(包括美国的学生)写信的时候没有基本的礼貌,然后
: 很多人就跳出来说;
: 别以为做教授就高人一等了
: 别以为做教授就是课葱了
: 做教授就是个穷酸的职业
: 做教授都社交能力低都是loser
: 你就一个自卑的臭老九
: ........
: 感觉就像是文革斗臭老九的话语,真不知道这些人怎么这么一副心态?

avatar
C*d
48
时间长了就好了

【在 R**e 的大作中提到】
: 哎,team里面都是老美,说话巨快。
: 根本跟不上,技术讨论好吃亏啊。
: 郁闷

avatar
x*q
49
Return value optimization? 应该不是这个case

【在 f*******t 的大作中提到】
: 应该有rvalue优化吧?
avatar
g*i
50
感恩节的时候她让我去她家的, 她喊她爹就是 first name。

【在 d********g 的大作中提到】
: 不会吧,怎么我认识的几个美国同学喊自己爸妈都是爸爸妈妈的叫。唯一一个喊自己爸
: 用first name的,后来偶然的机会才知道那是她后爸。
:
: 你就感觉美国文化的好了。

avatar
g*e
51
第二个创造了两个foo new出来的那个无法被delete

【在 m*********a 的大作中提到】
: Foo 是一个object
: Foo &myFoo=*(new Foo());
: 和
: Foo myFoo=*(new Foo());
: myFoo都是Foo的一个reference吧?

avatar
g*e
52
确实看多了java一时反映不过来
avatar
G*l
53
那要Foo实现了move constructor。即便如此,那也是move了new Foo里面的东西,那个
new Foo本身还是leak了。
从java过来的用c++,最应该注意的是c++有value semantics。
除了基本类型,java里只有Foo f = new Foo();
c++有Foo* f = new Foo();和Foo f;而且后者更常用。

【在 f*******t 的大作中提到】
: 应该有rvalue优化吧?
avatar
N*K
54
C++ 和 Java 势不两立啊 哈哈

【在 G***l 的大作中提到】
: 那要Foo实现了move constructor。即便如此,那也是move了new Foo里面的东西,那个
: new Foo本身还是leak了。
: 从java过来的用c++,最应该注意的是c++有value semantics。
: 除了基本类型,java里只有Foo f = new Foo();
: c++有Foo* f = new Foo();和Foo f;而且后者更常用。

avatar
g*e
55
java 就是无脑new呀new 脑残流
avatar
t*n
56
这种C++的学习方式,根本就是走火入魔。把C++当带类的C就行了。代码写成这样,以
后维护非常麻烦。要是是面试题,出题的人没有什么职业道德。
avatar
m*a
57
java的,基础的就不用了,最好是efficiency java啥的

【在 p***o 的大作中提到】
: C++的书还是Java的书?
avatar
m*a
58
这个就是很不规则的
Foo *myFoo=new Foo();的话C++,如果出了code block{}的话,
myFoo会call Foo()但是不会call ~Foo();需要自己call ~Foo()不?
但是Foo myFoo;的话C++,如果出了code block{}的话,
myFoo会call Foo()和 ~Foo();
不知是为啥,大牛解释一下。
Java是咋靠destructor的?

【在 G***l 的大作中提到】
: 那要Foo实现了move constructor。即便如此,那也是move了new Foo里面的东西,那个
: new Foo本身还是leak了。
: 从java过来的用c++,最应该注意的是c++有value semantics。
: 除了基本类型,java里只有Foo f = new Foo();
: c++有Foo* f = new Foo();和Foo f;而且后者更常用。

avatar
w*z
59
GC.

【在 m*********a 的大作中提到】
: 这个就是很不规则的
: Foo *myFoo=new Foo();的话C++,如果出了code block{}的话,
: myFoo会call Foo()但是不会call ~Foo();需要自己call ~Foo()不?
: 但是Foo myFoo;的话C++,如果出了code block{}的话,
: myFoo会call Foo()和 ~Foo();
: 不知是为啥,大牛解释一下。
: Java是咋靠destructor的?

avatar
p*o
60

这种最基本的东西随便一本靠谱的C++书都解释得很清楚。
Java没dtor,靠GC管理内存。没dtor管理其他资源实在不方便,
最后Java 7加了个AutoCloseable和try一起当dtor用。

【在 m*********a 的大作中提到】
: 这个就是很不规则的
: Foo *myFoo=new Foo();的话C++,如果出了code block{}的话,
: myFoo会call Foo()但是不会call ~Foo();需要自己call ~Foo()不?
: 但是Foo myFoo;的话C++,如果出了code block{}的话,
: myFoo会call Foo()和 ~Foo();
: 不知是为啥,大牛解释一下。
: Java是咋靠destructor的?

avatar
G*l
61
很规则,不过你要明白这个规则,也就两句话。
1.在stack上的object在out of scope的时候自动清除。
2.在heap上的object在out of scope时候不会清理,需要手动delete。
Java的规则是
1.在stack上的object在out of scope的时候自动清除。
2.在heap上的object在out of scope时候不会清理,GC会在下次collect的时候清理。
不过Java只有基本类型才能放在stack上,其他只能通过new放在heap上。c++所有的类
型,既可以通过new放在heap上,也可以直接放在stack上。

【在 m*********a 的大作中提到】
: 这个就是很不规则的
: Foo *myFoo=new Foo();的话C++,如果出了code block{}的话,
: myFoo会call Foo()但是不会call ~Foo();需要自己call ~Foo()不?
: 但是Foo myFoo;的话C++,如果出了code block{}的话,
: myFoo会call Foo()和 ~Foo();
: 不知是为啥,大牛解释一下。
: Java是咋靠destructor的?

avatar
m*a
62
哪在c++中可能有这样的memory leak
在main 中,在stack上initiate一个struct node{int value,node *next}
node dummy;
然后在main中call, addNode(node &dummy)
在add中在 heap 上 加一个node
dummy->next=new node();
这样返回的dummy node一个在stack 上,一个heap上。
推出main时,heap上的node还在?

【在 G***l 的大作中提到】
: 很规则,不过你要明白这个规则,也就两句话。
: 1.在stack上的object在out of scope的时候自动清除。
: 2.在heap上的object在out of scope时候不会清理,需要手动delete。
: Java的规则是
: 1.在stack上的object在out of scope的时候自动清除。
: 2.在heap上的object在out of scope时候不会清理,GC会在下次collect的时候清理。
: 不过Java只有基本类型才能放在stack上,其他只能通过new放在heap上。c++所有的类
: 型,既可以通过new放在heap上,也可以直接放在stack上。

avatar
G*l
63
退出main当然会不在了。推出main程序就结束了,所有内存都被操作系统回收了。
如果不是main的话那就是个leak。每个new都要有对应的delete。
这些都是最基本的概念,真要用c++你还是读点书吧。如果你只用过java,不会汇编,c
之类的话,不可能在这边看几个帖子或者stackoverflow上看看就能写c++的。

【在 m*********a 的大作中提到】
: 哪在c++中可能有这样的memory leak
: 在main 中,在stack上initiate一个struct node{int value,node *next}
: node dummy;
: 然后在main中call, addNode(node &dummy)
: 在add中在 heap 上 加一个node
: dummy->next=new node();
: 这样返回的dummy node一个在stack 上,一个heap上。
: 推出main时,heap上的node还在?

avatar
m*a
64
Foo 是一个object
Foo &myFoo=*(new Foo());

Foo myFoo=*(new Foo());
myFoo都是Foo的一个reference吧?
avatar
x*q
65
第二个是个copy。memory leak

【在 m*********a 的大作中提到】
: Foo 是一个object
: Foo &myFoo=*(new Foo());
: 和
: Foo myFoo=*(new Foo());
: myFoo都是Foo的一个reference吧?

avatar
f*t
66
应该有rvalue优化吧?

【在 x********q 的大作中提到】
: 第二个是个copy。memory leak
avatar
m*a
67
多谢。终于懂了。
真是太坑了,java 的实现多简单啊
Foo myFoo=new Foo();

c++的
Foo &myFoo=*(new Foo());

【在 x********q 的大作中提到】
: 第二个是个copy。memory leak
avatar
p*o
68
你这都是哪儿看来的诡异用法? 还是自己琢磨出来的?

【在 m*********a 的大作中提到】
: 多谢。终于懂了。
: 真是太坑了,java 的实现多简单啊
: Foo myFoo=new Foo();
: 和
: c++的
: Foo &myFoo=*(new Foo());

avatar
m*a
69
看书看得,比较c和java 语言
主要是学java的

【在 p***o 的大作中提到】
: 你这都是哪儿看来的诡异用法? 还是自己琢磨出来的?
avatar
p*o
70
扔了吧, 找本靠谱的看。

【在 m*********a 的大作中提到】
: 看书看得,比较c和java 语言
: 主要是学java的

avatar
m*a
71
推荐一本把,最好能下载,买也可以。

【在 p***o 的大作中提到】
: 扔了吧, 找本靠谱的看。
avatar
p*o
72
C++的书还是Java的书?

【在 m*********a 的大作中提到】
: 推荐一本把,最好能下载,买也可以。
avatar
x*q
73
Return value optimization? 应该不是这个case

【在 f*******t 的大作中提到】
: 应该有rvalue优化吧?
avatar
g*e
74
第二个创造了两个foo new出来的那个无法被delete

【在 m*********a 的大作中提到】
: Foo 是一个object
: Foo &myFoo=*(new Foo());
: 和
: Foo myFoo=*(new Foo());
: myFoo都是Foo的一个reference吧?

avatar
g*e
75
确实看多了java一时反映不过来
avatar
G*l
76
那要Foo实现了move constructor。即便如此,那也是move了new Foo里面的东西,那个
new Foo本身还是leak了。
从java过来的用c++,最应该注意的是c++有value semantics。
除了基本类型,java里只有Foo f = new Foo();
c++有Foo* f = new Foo();和Foo f;而且后者更常用。

【在 f*******t 的大作中提到】
: 应该有rvalue优化吧?
avatar
N*K
77
C++ 和 Java 势不两立啊 哈哈

【在 G***l 的大作中提到】
: 那要Foo实现了move constructor。即便如此,那也是move了new Foo里面的东西,那个
: new Foo本身还是leak了。
: 从java过来的用c++,最应该注意的是c++有value semantics。
: 除了基本类型,java里只有Foo f = new Foo();
: c++有Foo* f = new Foo();和Foo f;而且后者更常用。

avatar
g*e
78
java 就是无脑new呀new 脑残流
avatar
t*n
79
这种C++的学习方式,根本就是走火入魔。把C++当带类的C就行了。代码写成这样,以
后维护非常麻烦。要是是面试题,出题的人没有什么职业道德。
avatar
m*a
80
java的,基础的就不用了,最好是efficiency java啥的

【在 p***o 的大作中提到】
: C++的书还是Java的书?
avatar
m*a
81
这个就是很不规则的
Foo *myFoo=new Foo();的话C++,如果出了code block{}的话,
myFoo会call Foo()但是不会call ~Foo();需要自己call ~Foo()不?
但是Foo myFoo;的话C++,如果出了code block{}的话,
myFoo会call Foo()和 ~Foo();
不知是为啥,大牛解释一下。
Java是咋靠destructor的?

【在 G***l 的大作中提到】
: 那要Foo实现了move constructor。即便如此,那也是move了new Foo里面的东西,那个
: new Foo本身还是leak了。
: 从java过来的用c++,最应该注意的是c++有value semantics。
: 除了基本类型,java里只有Foo f = new Foo();
: c++有Foo* f = new Foo();和Foo f;而且后者更常用。

avatar
w*z
82
GC.

【在 m*********a 的大作中提到】
: 这个就是很不规则的
: Foo *myFoo=new Foo();的话C++,如果出了code block{}的话,
: myFoo会call Foo()但是不会call ~Foo();需要自己call ~Foo()不?
: 但是Foo myFoo;的话C++,如果出了code block{}的话,
: myFoo会call Foo()和 ~Foo();
: 不知是为啥,大牛解释一下。
: Java是咋靠destructor的?

avatar
p*o
83

这种最基本的东西随便一本靠谱的C++书都解释得很清楚。
Java没dtor,靠GC管理内存。没dtor管理其他资源实在不方便,
最后Java 7加了个AutoCloseable和try一起当dtor用。

【在 m*********a 的大作中提到】
: 这个就是很不规则的
: Foo *myFoo=new Foo();的话C++,如果出了code block{}的话,
: myFoo会call Foo()但是不会call ~Foo();需要自己call ~Foo()不?
: 但是Foo myFoo;的话C++,如果出了code block{}的话,
: myFoo会call Foo()和 ~Foo();
: 不知是为啥,大牛解释一下。
: Java是咋靠destructor的?

avatar
G*l
84
很规则,不过你要明白这个规则,也就两句话。
1.在stack上的object在out of scope的时候自动清除。
2.在heap上的object在out of scope时候不会清理,需要手动delete。
Java的规则是
1.在stack上的object在out of scope的时候自动清除。
2.在heap上的object在out of scope时候不会清理,GC会在下次collect的时候清理。
不过Java只有基本类型才能放在stack上,其他只能通过new放在heap上。c++所有的类
型,既可以通过new放在heap上,也可以直接放在stack上。

【在 m*********a 的大作中提到】
: 这个就是很不规则的
: Foo *myFoo=new Foo();的话C++,如果出了code block{}的话,
: myFoo会call Foo()但是不会call ~Foo();需要自己call ~Foo()不?
: 但是Foo myFoo;的话C++,如果出了code block{}的话,
: myFoo会call Foo()和 ~Foo();
: 不知是为啥,大牛解释一下。
: Java是咋靠destructor的?

avatar
m*a
85
哪在c++中可能有这样的memory leak
在main 中,在stack上initiate一个struct node{int value,node *next}
node dummy;
然后在main中call, addNode(node &dummy)
在add中在 heap 上 加一个node
dummy->next=new node();
这样返回的dummy node一个在stack 上,一个heap上。
推出main时,heap上的node还在?

【在 G***l 的大作中提到】
: 很规则,不过你要明白这个规则,也就两句话。
: 1.在stack上的object在out of scope的时候自动清除。
: 2.在heap上的object在out of scope时候不会清理,需要手动delete。
: Java的规则是
: 1.在stack上的object在out of scope的时候自动清除。
: 2.在heap上的object在out of scope时候不会清理,GC会在下次collect的时候清理。
: 不过Java只有基本类型才能放在stack上,其他只能通过new放在heap上。c++所有的类
: 型,既可以通过new放在heap上,也可以直接放在stack上。

avatar
G*l
86
退出main当然会不在了。推出main程序就结束了,所有内存都被操作系统回收了。
如果不是main的话那就是个leak。每个new都要有对应的delete。
这些都是最基本的概念,真要用c++你还是读点书吧。如果你只用过java,不会汇编,c
之类的话,不可能在这边看几个帖子或者stackoverflow上看看就能写c++的。

【在 m*********a 的大作中提到】
: 哪在c++中可能有这样的memory leak
: 在main 中,在stack上initiate一个struct node{int value,node *next}
: node dummy;
: 然后在main中call, addNode(node &dummy)
: 在add中在 heap 上 加一个node
: dummy->next=new node();
: 这样返回的dummy node一个在stack 上,一个heap上。
: 推出main时,heap上的node还在?

avatar
g*e
87

this is called RAAI

【在 m*********a 的大作中提到】
: 这个就是很不规则的
: Foo *myFoo=new Foo();的话C++,如果出了code block{}的话,
: myFoo会call Foo()但是不会call ~Foo();需要自己call ~Foo()不?
: 但是Foo myFoo;的话C++,如果出了code block{}的话,
: myFoo会call Foo()和 ~Foo();
: 不知是为啥,大牛解释一下。
: Java是咋靠destructor的?

avatar
h*c
88
The second one depends on if the copy constructor is wel defined and
overlaoding = operator.
I guess it is legal.
Just a kind of chaining.

【在 m*********a 的大作中提到】
: Foo 是一个object
: Foo &myFoo=*(new Foo());
: 和
: Foo myFoo=*(new Foo());
: myFoo都是Foo的一个reference吧?

avatar
d*i
89
你这个是哪里看来的乱七八糟的东西?C++里面创建对象一般最常用的就两种:
Foo myFoo;
或者
Foo *myFoo = new Foo();
// some code...
delete myFoo;
前者stack后者heap。前者不用你来管理,后者需要你手动delete释放内存。相当与C里
面的malloc和free的配对。

【在 m*********a 的大作中提到】
: Foo 是一个object
: Foo &myFoo=*(new Foo());
: 和
: Foo myFoo=*(new Foo());
: myFoo都是Foo的一个reference吧?

avatar
h*6
90
工作中这样写代码,会被人把手指砍下来贴在布告栏中展览的。
avatar
v*y
91
要用
Foo myFoo=*(new Foo());
正确的话,copy construct要重新定义
Foo(const Foo & rhs){
//memberwise copy of Foo's member from rhs to this
delete &rhs;//prevent memory leak
}
那以后就不能用, Foo myFoo=Foo();
这个delete stack上的Foo()是undefined.
虽然很多程序运行没有问题,但是还是不安全
有啥办法不?
还有如果
Foo *a=new Foo();
Foo b(*a);
a就给释放了。程序完全乱了
c++无法知道object是分配到heap还是stack的。

【在 h**********c 的大作中提到】
: The second one depends on if the copy constructor is wel defined and
: overlaoding = operator.
: I guess it is legal.
: Just a kind of chaining.

avatar
n*t
92
不要写这种 code,在 construct 里 delete 另一个,老老实实 copy and delete 就
不会有问题了

【在 v******y 的大作中提到】
: 要用
: Foo myFoo=*(new Foo());
: 正确的话,copy construct要重新定义
: Foo(const Foo & rhs){
: //memberwise copy of Foo's member from rhs to this
: delete &rhs;//prevent memory leak
: }
: 那以后就不能用, Foo myFoo=Foo();
: 这个delete stack上的Foo()是undefined.
: 虽然很多程序运行没有问题,但是还是不安全

avatar
t*n
93
如果你写了Foo b(*a),你饭碗估计也就砸了。

【在 v******y 的大作中提到】
: 要用
: Foo myFoo=*(new Foo());
: 正确的话,copy construct要重新定义
: Foo(const Foo & rhs){
: //memberwise copy of Foo's member from rhs to this
: delete &rhs;//prevent memory leak
: }
: 那以后就不能用, Foo myFoo=Foo();
: 这个delete stack上的Foo()是undefined.
: 虽然很多程序运行没有问题,但是还是不安全

avatar
t*n
94
老姜你还跟刷题党较真,难得难得。

【在 n*****t 的大作中提到】
: 不要写这种 code,在 construct 里 delete 另一个,老老实实 copy and delete 就
: 不会有问题了

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