Точно так же пишут эти два типа структуры? - PullRequest
0 голосов
/ 29 апреля 2019

В тесте мне пришлось записать некоторые параметры в struct car (некоторые особенности автомобиля). Я написал этот код:

struct car
{
    string plate, template, brand;
    int    doors;
    float  engine_size;

    void ins()
    {
        cout << "Insert the template" << endl;
        cin >> template;
        cout << "Insert the engine size" << endl;
        cin >> engine_size;
        // it would continue but it is the same
    }
}

Мой проф сказал мне, что это неправильно, и он исправил это с помощью кода:

struct car
{
    string plate, template, brand;
    int    doors;
    float  engine_size;

    void ins()
    {
        string t;
        int    e;
        cout << "Insert the template" << endl;
        cin >> t;
        t = template;
        cout << "Insert the engine size" << endl;
        cin >> e;
        e = engine_size
        // it would continue but it is the same
    }
}

1 Ответ

3 голосов
/ 29 апреля 2019

Возможно, у вашего профессора есть какое-то странное недопонимание того, как работает operator>>.Это единственное объяснение, которое я могу придумать.Однако я не вижу веских причин для этих «исправлений».Наоборот, вам не нужны эти дополнительные переменные, и они просто делают код более многословным без какой-либо выгоды.Обратите внимание, что даже если вам понадобятся эти дополнительные переменные, вы должны объявлять их только тогда, когда это необходимо, а не в верхней части функции.

В вашем коде есть две настоящие проблемы: вы пропускаете ; после классаобъявление, и вы не можете использовать template в качестве имени переменной.

На самом деле я думаю, что где-то должно быть какое-то недопонимание.Вы уверены, что поняли предложения вашего профессора и правильно разместили их здесь?Я предлагаю вам еще раз попросить их объяснить, почему вы должны внести эти изменения.В любом случае, если ваш учитель говорит вам «делайте так», не приводя веских причин, то это ужасный учитель.Не следуйте правилам, которые вы не понимаете.

PS: последнее и последнее, я проигнорировал тот факт, что вы выполняете задания неправильно.Ваш второй фрагмент действительно не может быть менее правильным ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...