gpt4 book ai didi

C++:初始化 2 个对象 -> 输出不符合预期

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:43:34 26 4
gpt4 key购买 nike

我的程序创建了两个对象(a1 和 a2),并用值 42 和 a2 初始化 a1 和值 11。构造函数将变量 num 和 x 设置为这个值。

但我的程序输出是这样的(不是预期的 42 42):

11
42

这是我的代码:

#include <iostream>
using namespace std;

class A {
static int num;
int x;
public:
A(int n) {
num = n;
x = n;
}

void print() {
cout << num << endl;
cout << x << endl;
cout << endl;
}
};

int A::num;

int main() {
A a1(42);
A a2(11);
a1.print();
}

谁能给我一个提示,为什么当我创建对象 a2 时,对象 a1 中的 num 被“覆盖”?非常感谢...

最佳答案

静态类成员在类的所有实例之间共享。因此,当您创建 A a2(11) 时,num 会被覆盖为 11。

这是正常的静态行为。

关于C++:初始化 2 个对象 -> 输出不符合预期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24934295/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com