访问基于if条件声明的对象时出现错误。
(LudoPlayer是一个类)
代码为:
if(n==4){
cin>>a >>b >>c >>d;
LudoPlayer play(a, b, c, d);
}
if(n==3){
cin>>a >>b >>c;
LudoPlayer play(a, b, c);
}
play.Dispaly();
错误是:
错误:未在此范围内声明“播放”
最佳答案
其他两个答案将起作用(尽管Hazem Abaza的答案有一个小错误:必须首先在if块之外定义指针)。
但是,根据构造函数的定义方式,您通常无法使用adrisui3的答案中的选项。
另一种选择是使函数返回LudoPlayer
(这可以是一个自由函数,或者可能是一个更好的静态成员)
LudoPlayer makeLudoPlayer(int n) {
if (n == 4) {
int a, b, c, d;
std::cin >> a >> b >> c >> d;
return LudoPlayer(a, b, c, d);
}
else {
int a, b, c;
std::cin >> a >> b >> c;
return LudoPlayer(a, b, c);
}
}
//Then, main may look like this:
int main() {
int n = 3; // or 4
LudoPlayer play = makeLudoPlayer(n);
play.Display();
}
关于c++ - 如果我是根据较早的if条件创建的,如何在代码中使用后者的实例?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60464325/