avatar
c*n
1
如果有一个class
class Apple {
Feed feed;
}
(注意:并没有自己定义constructor,当然也就没有手工给feed分配内存)
是不是如下语句
Apple apple;
就已经给apple 和 apple.feed分配内存了? (只是内存内容不可预料?)
并不是像java那样 Apple apple只是定义一个值为null的reference?
avatar
h*o
2
feed的内容是Feed()
如果没有定义Feed();会报错

【在 c*********n 的大作中提到】
: 如果有一个class
: class Apple {
: Feed feed;
: }
: (注意:并没有自己定义constructor,当然也就没有手工给feed分配内存)
: 是不是如下语句
: Apple apple;
: 就已经给apple 和 apple.feed分配内存了? (只是内存内容不可预料?)
: 并不是像java那样 Apple apple只是定义一个值为null的reference?

avatar
c*n
3
just tested the following code. it compiled.
#include
using namespace std;
class Feed{};
class Apple{
public:
Feed feed;
};
int main() {
Apple apple;
cout << (long) &apple << endl;
cout << (long) &apple.feed << endl;
}
$ ./a.out
140735076833951
140735076833951

【在 h**o 的大作中提到】
: feed的内容是Feed()
: 如果没有定义Feed();会报错

avatar
O*d
4
在java里,stack上只有pointer and primitive data type。 所以在java里,数列要
用new, 数列的每个成员也要用new. 而在C/C++里, stack上可以有各种data type,
包括class instance 和数列。
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。