【发布时间】:2014-11-14 11:35:26
【问题描述】:
所以我有一个关于创建类对象和范围的问题。我的程序需要做 3 件不同的事情,具体取决于它是否由 ./Bank、./Bank [number] 和 ./Bank [number] [string] 调用。我有一个 Bank 类,它有 3 个构造函数,对应于程序的启动方式 Bank()、Bank(int num) 和 Bank(int num, string str)。 “银行”只是一个客户对象数组,默认构造函数设置数组的默认长度,第二个构造函数让用户设置数组的长度,最后一个让用户设置长度和文本文件名填充数组(它使用信息创建一个新客户,然后将客户添加到数组中)。我可以主要这样做吗?
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 语句中创建一个类时它会有所不同吗?
【问题讨论】:
标签: c++ class constructor scope