C++ 在C+中避免多个同名对象+;

C++ 在C+中避免多个同名对象+;,c++,C++,我正在为我的新Linux发行版()构建一个简单的包管理器,但遇到了一个问题。Myinstall()和remove()函数需要访问未指定数量的包对象。这是安装功能 void install(int argc, char *argv[]) throw() { for (int i = 2; i <= argc; i++) { Package p(argv[i]); p.fetch();

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

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";
        }
}
void安装(int-argc,char*argv[])throw()
{

对于(int i=2;i您的代码没有明显的问题,多个对象也不会有任何问题。变量
p
具有自动功能,并且在退出时被销毁。这意味着在
for
循环
p
的每次迭代结束时被销毁且不再存在。

您需要重新运行这是一本关于C++的好书,尤其是关于范围规则的。变量<代码> p>代码>在循环内被局部声明,每次循环都会生成一个新的和唯一的对象。好书:我认为对象在循环中一直存在。我没有意识到内容在每次迭代中被破坏。自动存储持续时间其生存期限制在其定义的范围内。在这种情况下,
p
的生存期由
for
语句后面的复合语句定义。