Итак, у меня возник вопрос о создании объекта класса и области видимости. Моя программа должна делать 3 разных вещи в зависимости от того, вызвана ли она ./Bank, ./Bank [число] и ./ Bank [число] [строка]. У меня есть класс Bank, у которого есть 3 менеджера, которые соответствуют запуску программы Bank(), Bank (int num) и Bank (int num, string str). «Банк» - это всего лишь массив объектов Customer, конструктор по умолчанию задает длину массива по умолчанию, второй конструктор позволяет пользователю задать длину массива, а последний позволяет пользователю задать длину и имя текстового файла для заполнения массива (он использует информацию для создания нового Клиента, а затем добавляет Заказчика в массив). Могу ли я сделать это в основном?конструкция класса & scope
int main(int argc, char **argv){
string progName(argv[0]);
int numCustomers;
string fileName;
if(argc == 1){
Bank bank;
}
//get number of customers argument
if(argc > 1){
istringstream buf(argv[1]);
buf >> numCustomers;
Bank bank(numCustomers);
}
//get file name argument
if(argc > 2){
istringstream buf(argv[1]);
buf >> numCustomers;
fileName = argv[2];
Bank bank(numCustomers, fileName);
} // more stuff below
, а затем в главном вызове bank.функция()? Или банк существует только в области if if? Я знаю, что с переменной она не будет существовать вне оператора if, но разве это не так, если вы создаете класс внутри оператора if?
Возможный дубликат: [Расширение сферы действия переменной инициализируется в/если еще последовательности] (http://stackoverflow.com/questions/24638158/ expand-scope-of-a-variable-initialized-in-a-if-else-sequence) –