所以我有一个关于创建类对象和范围的问题。我的程序需要做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