以同样的方式编写这两种类型的结构吗?

时间:2019-04-29 08:45:09

标签: c++ struct

在测试中,我不得不在结构车(某些车的功能)中编写一些参数。我写了这段代码:

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 个答案:

答案 0 :(得分:3)

也许您的教授对output_wavelets的运作方式有一些奇怪的误解。那就是我能提出的唯一解释。但是,我认为这些“修复”没有充分的理由。相反,您不需要这些额外的变量,它们只是使代码变得更加冗长而没有收获。请注意,即使您需要这些附加变量,也应仅在需要时才在函数顶部声明它们。

您的代码中存在两个实际问题:类声明后错过了operator>>,并且不能使用;作为变量名。

实际上,我认为某个地方一定存在一些误解。您确定您了解教授的建议并将其正确张贴在这里吗?我建议您再次要求他们解释为什么要进行这些更改。无论如何,如果您的老师在没有给出充分理由的情况下告诉您“那样做”,那就太糟糕了。不要遵循您不理解的规则。

PS:最后也是最不重要的一点,我忽略了您分配作业错误的事实。您的第二个片段确实不能不那么正确...