我试图使用[i] .display()调用不同的类方法;功能
我得到的错误如下: for (int i = 0; i < n; i++){
char date_description[7];
double high = 0.0, low = 0.0;
cout << "Enter Date :";
cin.getline(date_description, 80, '\n');
cout << "Enter High :";
cin >> high;
cout << "Enter Low :";
cin >> low;
cin.ignore();
weather.set(date_description, low, high);
}
cout << endl;
cout << "Weather report:\n";
cout << "======================" << endl;
for (int i = 0; i < n; i++){
weather[i].display();
}
这是我的相关代码: main.cpp中:
void Weather::set(const char* date_description, double low , double high) {
strcpy(date, date_description);
highTemp = high;
lowTemp = low;
}
void Weather::display() const {
}
Weather.cpp
$.ajax({
url: '@Url.Action("doMultiBook", "Home")',
data: { "obj": myDataArray },
type: 'GET',
dateType: "json",
cache:false,
success: function (data) {
},
error: function (data) {
console.log("ERROR " + data)
}
});
知道为什么我的天气[i] .display(); 抛出错误? 我还没有编写我的display()实现代码。
答案 0 :(得分:0)
for (int i = 0; i < n; i++){
weather[i].display(); }
这被解释为:
天气是一系列指针,你在天气阵列中的天气对象上调用显示。
ex:天气天气[10];
如果声明如上所述,那将是有意义的。
您也可以将其声明为:
Weather* weather;
weather = new Weather[10];
答案 1 :(得分:0)
我们在您的问题中遗漏了一些代码,但我假设您已经在某个地方
Weather weather(/*constructor args*/);
或只是
Weather weather;
你得到的错误是编译器说&#34;嘿,我试着做某种类型&#34;天气&#34;,但是课程不知道如何做到这一点&#34; #34;
看起来(来自weather[i].display()
和两个for循环)你期望你有一个Weather对象的列表(矢量或数组),并尝试调用display on每个都依次。
方法是以
开头Weather weather[/*some integer*/];
或
std::vector<Weather> weather;
并将行weather.set(date_description, low, high);
更改为依次应用于每个项目(例如weather[i].set(date_description, low, high);
)