gpt4 book ai didi

c++ - 在另一个函数中初始化一个类

转载 作者:太空宇宙 更新时间:2023-11-04 16:15:29 26 4
gpt4 key购买 nike

我有一个代码,如果简化的话会是这样的:

void foo(MyObject& y){
int 2;
MyObject y(2);
}

int main (int argc, char** argv) {
MyObject x;
foo(x);
x.run();
}

但是,我收到错误消息“错误:'MyObject y' 的声明隐藏了一个参数。请注意,foo() 最初是一个复杂得多的函数,即,我不想将 foo 的代码复制并粘贴到 main (尽管在上面的例子中看起来很有可能)。我在这里想做的是在 main() 中将 MyObject x 传递给 foo,在 foo() 中初始化 x,并在 main 中调用 x.run()。

有什么想法吗?

最佳答案

你不能对一个对象进行两次初始化。您可以为它分配一个不同的值:

void foo(MyObject& y){
int n = 2;
y = MyObject(n);
}

或者,编写一个初始化对象并返回它的函数:

MyObject foo(){
int n = 2;
return MyObject(n);
}

MyObject m(foo());

关于c++ - 在另一个函数中初始化一个类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23227126/

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