声明地点是什么意思?

duk*_*ver 6 c++ declaration statements

我正在读一本书,在这里,给出了这样的程序-

#include<fstream>
#include<string>
#include<vector>

int main()
{
    string filename; // #1

    cout << "Please enter name of file to open : ";
    cin >> filename;

    if(filename.empty())
    {
        cerr << "Something...";
    }
    ifstream inFile(filename.c_str());  // #2
    if(!inFile)
    {
        cerr<< "Somthing...";
    }
    .
    .
    .
}
Run Code Online (Sandbox Code Playgroud)

并且解释段说,声明语句显示声明的位置,这是这样解释的

声明语句出现在第一次使用定义对象的地方。

我对那句话很困惑,我无法理解它的实际含义。我需要用一些例子来解释。

Nat*_*ica 9

声明语句出现在第一次使用定义对象的地方。

是另一种说法,除非你需要它,否则不要声明它。通过这样做,您可以将声明带到使用对象的地方,这样做可以更容易地知道该对象是什么。

假设您有一个 1000 行长的函数。如果您在开始时声明了在函数中使用的所有变量,但直到第 950 行才使用其中一个,那么您必须向后滚动 950 行以找出该变量的类型。如果您改为在第 949 行声明它,并在第 950 行使用它,那么信息就在那里,您不需要太多地寻找它。

因此,在您的示例中,#2 是在使用之前声明的,而不是像 #1 那样在顶部声明。