c ++使用for循环调用不同的类方法

时间:2015-09-30 13:54:23

标签: c++ class loops for-loop implementation

我试图使用[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()实现代码。

2 个答案:

答案 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);