Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/141.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 错误:“midfielder1”未在此范围内声明_C++_Class_Pointers_Object - Fatal编程技术网

C++ 错误:“midfielder1”未在此范围内声明

C++ 错误:“midfielder1”未在此范围内声明,c++,class,pointers,object,C++,Class,Pointers,Object,我目前在对象和类方面遇到了一些困难。我正在创建对象,在本例中,足球运动员在类的一个函数中,然后尝试在另一个函数中显示他们的详细信息。 这是创建对象的函数 void create_all_players(){ Midfielder *midfielder1= new Midfielder("Jordan Lewis"); Midfielder *midfielder2= new Midfielder("David Armitage"); Midfielder *midfielder3= new M

我目前在对象和类方面遇到了一些困难。我正在创建对象,在本例中,足球运动员在类的一个函数中,然后尝试在另一个函数中显示他们的详细信息。 这是创建对象的函数

void create_all_players(){
Midfielder *midfielder1= new Midfielder("Jordan Lewis");
Midfielder *midfielder2= new Midfielder("David Armitage");
Midfielder *midfielder3= new Midfielder("Tom Rockliff");
Midfielder *midfielder4= new Midfielder("Gary Ablett");
Midfielder *midfielder5= new Midfielder("Dyson Heppel");
Midfielder *midfielder6= new Midfielder("Scott Pendlebury");
Midfielder *midfielder7= new Midfielder("Michael Barlow");
Midfielder *midfielder8= new Midfielder("Jack Steven");
}    
这是我试图输出玩家详细信息的函数

void display_all_players(){

cout<<midfielder1->Player_Details()<<endl;
cout<<midfielder2->Player_Details()<<endl;
cout<<midfielder3->Player_Details()<<endl;
cout<<midfielder4->Player_Details()<<endl;
cout<<midfielder5->Player_Details()<<endl;
cout<<midfielder6->Player_Details()<<endl;
cout<<midfielder7->Player_Details()<<endl;
cout<<midfielder8->Player_Details()<<endl;
}
和中场球员

#include <iostream>
#include <string>
#include "Player.h"
#include "Midfielder.h"
using namespace std;

Midfielder::Midfielder(){}

Midfielder::Midfielder(string Name){
this->Name=Name;
}


string Midfielder::Player_Details(){

return "Midfielder : " + this->Name;
}

}

感谢您提前提供的帮助

您在“创建所有球员”方法中创建了中场变量。这为它们提供了一个功能范围,并且只能从那里访问它们。您需要将变量存储在其他地方,比如全局存储在任何函数之外。

编译器错误消息非常清楚。为什么你希望中场1在所有球员中都能出现?这是一个不同函数的局部变量。在显示所有球员函数中,如何访问中场1等?我对编程和C++很陌生,我正在努力解决这些概念:对类和数据成员进行比特读取。我现在在函数之外创建它们,并且看起来很有效,非常感谢!如果你能将此标记为解决方案,那就太好了。
#include "Player.h"
#include <iostream>
#include <string>
#include <sstream>
#include "Player.h"
#include "Midfielder.h"
using namespace std;

Player::Player():Name("Default"){}

Player::Player(string Name){
this->Name=Name;
}


string Player::Player_Details(){

return "Player : " + this->Name ;
}
#ifndef MIDFIELDER_H
#define MIDFIELDER_H
#include "Player.h"

class Midfielder : public Player
{
    public:
        Midfielder();
        Midfielder(std::string);
        virtual std::string Player_Details();
};

#endif // MIDFIELDER_H
#include <iostream>
#include <string>
#include "Player.h"
#include "Midfielder.h"
using namespace std;

Midfielder::Midfielder(){}

Midfielder::Midfielder(string Name){
this->Name=Name;
}


string Midfielder::Player_Details(){

return "Midfielder : " + this->Name;
}

}