Redian新闻
>
rMBP 13的RAM比以前少了?
avatar
rMBP 13的RAM比以前少了?# Apple - 家有苹果
f*y
1
Q: What will happen in the following code after the function foo() returns?
class base
{
public:
base() { }
~base() { }
};
class derived : public base
{
private:
int *p_pi_values;
public:
derived() : p_pi_values(new int[100]) { }
~derived() { delete [] p_pi_values; }
};
void foo(void)
{
derived *p_derived = new derived();
base *p_base = p_derived;
// Do some other stuff here.
delete p_base;
}
avatar
D*y
2
【 以下文字转载自 PDA 讨论区 】
发信人: DrDonkey (驴博), 信区: PDA
标 题: rMBP 13的RAM比以前少了?
发信站: BBS 未名空间站 (Tue Oct 22 14:37:25 2013, 美东)
我记得以前的是8GB起阿
avatar
p*7
3
我觉得会memory leak,因为解析函数会调用的base的解析,而不是derivedclass的
avatar
z*e
4
不是,你记错了。
avatar
g*d
5
忘记virtual destructor?
avatar
R*o
6
没错,是8GB,所以才便宜了200块呀
avatar
A*r
7
agree.

【在 p********7 的大作中提到】
: 我觉得会memory leak,因为解析函数会调用的base的解析,而不是derivedclass的
avatar
D*y
8
那这么说,实际上只便宜了100块啊,升级到8GB要100块钱。。。

【在 R*****o 的大作中提到】
: 没错,是8GB,所以才便宜了200块呀
avatar
x*k
9
memory leak, base::~base() is called when deleting p_base.
avatar
s*p
10
上一代13 rmbp是最低4G的RAM啊
我当时想买还专门看了比较了

【在 R*****o 的大作中提到】
: 没错,是8GB,所以才便宜了200块呀
avatar
l*n
11
It is a rule that base class must have a virtual destructor to prevent
problems like this.
avatar
R*o
12
上一代的mbp最低ram是4GB,rmbp的最低是8GB.
avatar
w*a
13
virtual destructor.
avatar
f*y
14
memory leak is obvious. but the right answer is "undefined."
avatar
l*o
15
When there is inheritance, there must be a virtual destructor in the very
base class.
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。