gpt4 book ai didi

c++ - 如何在 C++ 中重新声明一个类对象?

转载 作者:行者123 更新时间:2023-11-30 03:23:43 26 4
gpt4 key购买 nike

我正在对类和构造函数进行试验,并尝试根据 if 语句之类的内容为类对象选择特定的声明。我写了一个简单的例子来展示我试图做的事情,但它不起作用。即使它满足 if 语句,它也会打印第一个声明对象的“id”,如果我没有在 if 语句之前声明它,我会收到打印错误“a not declared in this scope”。有没有办法重新声明一个类对象,然后通过 if 语句使用它?

class potato{

private:
int id;
public:

void get_id(){
cout<<id<<endl;
}

potato(int x){
id=x;
}

};

int main(){

int i=9;
potato a(i);
if(i==3){
potato a(5);
}
else
potato a(3);


a.get_id();


}

最佳答案

if-else block 中的a 对象与之前的对象不同。它们在 if-else block 中创建和销毁,并且不更改第一个对象。

potato a(i);  // Object 1
if(i==3){
potato a(5); // Object 2.
}
else
potato a(3); // Object 3


a.get_id(); // Still object 1

如果要更改第一个对象,请使用赋值。

potato a(i);  // Object 1
if(i==3){
a = potato(5); // Changes object 1.
}
else
a = potato(3); // Changes object 1.


a.get_id(); // Should have new value

关于c++ - 如何在 C++ 中重新声明一个类对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50202896/

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