当我将湖人队名单放入湖人队方法参数中时,它显示:
错误:删除时未知数组大小
和
注意:这里首先需要合成方法 'Team::~Team()' Team Lakers("洛杉矶湖人队", 70, 12, LakersStartRoster)//有一个箭头指向最后一个括号;
#include <iostream>
#include <string>
using namespace std;
string lakersStartRoster[] = {"LeBron", "AD", "Austin", "Rui", "D'Angelo"};
class Team {
public:
string name;
int wins, losses;
string roster[];
Team(string x, int a, int b, string y[]){
name = x;
wins = a;
losses = b;
cout << y << endl;
}
};
int main(){
Team lakers("Los Angeles Lakers", 70, 12, lakersStartRoster);
return 0;
}
main.cpp:8:7: error: unknown array size in delete
8 | class Team {
| ^~~~
main.cpp: In function 'int main()':
main.cpp:23:68: note: synthesized method 'Team::~Team()' first required here
23 | Team lakers("Los Angeles Lakers", 70, 12, lakersStartRoster);
|
我在 Windows 的 powershell 终端上收到此错误消息***
我以为我做得正确,但我收到了错误消息。我尝试在网上寻找类似的问题以及如何在 C++ 中使用数组,但我似乎找不到任何关于为什么我收到此错误的信息。
更多详情请参阅我的评论。
这里是带有
std::vector
的代码,对于初学者来说这是一个整体更好的实现。
#include <iostream>
#include <string>
#include <vector> // std::vector
using namespace std;
vector<string> lakersStartRoster = {"LeBron", "AD", "Austin", "Rui", "D'Angelo"};
class Team {
public:
string name;
int wins, losses;
vector<string> roster{}; // note: you never set this value in your original code
Team(string x, int a, int b, vector<string> y){
name = x;
wins = a;
losses = b;
for(string element : y) cout << element << endl; // note: you cannot just output a vector or array itself
roster = y; // set the value here
}
};
int main(){
Team lakers("Los Angeles Lakers", 70, 12, lakersStartRoster);
return 0;
}