访问基于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/

10-13 21:30