我刚开始使用C++。我有一个类ourVector,并且在该类中我有一个名为ourVector()的构造函数,它包含变量的初始化。我需要这些变量来重置main中的每个循环,但是我不知道如何在main中调用构造函数。

class ourVector
    ourVector()
        {
            vectorCap = 20;
            vectorSize = 0;
        }

总的来说,我的类对象称为ourVector vectorTest;

我只是想弄清楚如何在没有错误的情况下调用ourVector(),因此可以将其放在main循环的末尾以清除并重新初始化变量。

任何帮助将不胜感激。

谢谢!

最佳答案

通常,当您发现自己在执行此类操作时,这可能表明存在一种在语义上更合适的方式来构造代码(即使代码结构更紧密地表达您的意图)。

对于您自己的情况,请问自己为什么每次循环都需要重置该值。似乎您只是在使用对象在循环中的每次迭代中保存一些中间数据,并且您不必担心循环外的值(但如果您愿意,则需要riderBill's answer之类的东西)。因此,确实,您的ourVector实例仅在该循环范围内有用。

因此,使您的代码结构反射(reflect)出:

int main () {
    ...
    while (...) { // <- this represents your loop

        ourVector v; // <- each time through, 'v' is constructed

        ... // <- do whatever with 'v' here

    } // <- that 'v' goes away when it goes out of scope
    ...
}

换句话说,只需在它所属的循环中声明它即可。从语义上讲,这很有意义(它表示您实际使用该对象的方式和位置),并且无需修改ourVector即可完成您想要的操作。

通常,作为初学者的经验法则,请尝试在可能仍适用于您的代码的最严格范围内声明变量。

关于c++ - 在C++中调用构造函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26569540/

10-13 01:12