所以我有一個關於創建類對象和範圍的問題。我的程序需要做3件不同的事情,具體取決於它是由./Bank,./Bank [number]還是./ Bank [number] [string]調用。我有一個Bank類,它有3個構造函數,它們對應於程序如何啓動Bank(),Bank(int num)和Bank(int num,string str)。 「Bank」只是一個Customer對象的數組,默認的構造函數設置數組的默認長度,第二個構造函數讓用戶設置數組的長度,最後讓用戶設置長度和文本文件名填充數組(它使用信息創建一個新的Customer,然後將Customer添加到數組中)。我能做到這一點嗎?構造類和範圍
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.function()?或者銀行是否只存在於if語句範圍內?我知道一個變量它不會存在於if語句之外,但是當你在if語句中創建一個類時它有什麼不同?
的可能的複製:([展開一個的if/else順序初始化變量的作用域] http://stackoverflow.com/questions/24638158/擴大變量範圍初始化在一個如果其他序列) – 2014-09-19 19:51:49