在C ++中避免使用同名的多个对象

时间:2014-12-31 01:13:00

标签: c++

我正在为我的新Linux发行版(check it out as soon as I finish)构建一个简单的包管理器,并遇到了问题。我的install()remove()函数需要访问未指定数量的Package个对象。这是安装功能。

void install(int argc, char *argv[]) throw()
{
        for (int i = 2; i <= argc; i++)
        {
                Package p(argv[i]);
                p.fetch();
                cout << "Package " << p.getRef() << " retrieved succesfully from server.\n";
                p.install();
                cout << "Package " << p.getRef() << " installed succesfully.\n";
        }
}

我怀疑这段代码并不完全是犹太人;这将导致多个名为p的对象,这可能会导致编译和/或运行时错误。我正在寻找的是在循环的每次迭代中更改名称p或在一次迭代后删除p以便我可以自由创建该名称的另一个对象。

1 个答案:

答案 0 :(得分:2)

您的代码没有明显的问题,多个对象也不会出现任何问题。变量p具有自动storage duration,当它离开scope时会被销毁。当这意味着在每次迭代结束时for循环p被销毁并且不再存在。