【发布时间】:2019-11-12 19:42:04
【问题描述】:
所以我得到了这段代码,我必须确定输出,但我不知道如何开始。有人可以一步一步告诉我会发生什么吗?
S(int V, S*...) 和 S s = S(10, new...) 线最让我困惑。
我确实对指针和类有一个粗略的了解,但显然还不够。
我知道S* n 的含义和s.n -> n 的含义,但是S s 让我很困惑
我尝试按照代码一步一步来,但在S(int V, S* N....) 行迷路了
struct S {
S* n;
int v;
S(int V, S* N) : n(N), v(V) {};
};
S s = S(10, new S(20, &s));
std::cout << (s.n->n->v);
输出是10,但我不知道为什么。
【问题讨论】:
-
请不要链接到代码。将所有相关代码 in 放入问题中 - 作为 text.
-
你知道
s是什么吗?s.n是什么?s.n->n是什么?我们有多少对象? -
这如何编译?您将指针
s传递为&s -
你懂
int i = 42;吗?S s = /*..*/;是一样的。类型为S的s的定义。 -
棘手的部分是
&s,这是正在建设中的s。但无论如何相对直观。s未初始化,但&s有意义。
标签: c++ struct constructor