v****c 发帖数: 32 | 1 为啥这种编译过不了?
ifstream in_file;
ofstream out_file;
in_file("data.txt");
out_file("data.sort");
必须得:
ifstream in_file("data.txt");
ofstream out_file("data.sort"); |
c*******h 发帖数: 527 | 2 是个c++的东西,你这样用都不成吧?
【在 v****c 的大作中提到】 : 为啥这种编译过不了? : ifstream in_file; : ofstream out_file; : in_file("data.txt"); : out_file("data.sort"); : 必须得: : ifstream in_file("data.txt"); : ofstream out_file("data.sort");
|
v****c 发帖数: 32 | 3 第二种没问题;高手给解释一下为什么第一种不成?
谢谢!:) |
v****c 发帖数: 32 | 4 第二种没问题;高手给解释一下为什么第一种不成?
谢谢!:) |
X****r 发帖数: 3557 | 5 在 ifstream in_file("data.txt"); 里:
ifstream是类型,in_file是变量名,"data.txt"是初始化表达式列表,
也就是创建一个新的名叫in_file,类型为ifstream的变量,并用接受一个const char
*(或者const char*可以自动转换成的类型)的构建函数来初始化这个变量。ifstream
类里有这样一个构建函数,所以编译就可以通过。
在 ifstream in_file; in_file("data.txt"); 里:
前一句是创建一个新的名叫in_file,类型为ifstream的变量,并用不带任何参数的构
建函数来初始化这个变量。ifstream类里也有这样一个构建函数,所以编译也可以通过
。但是后一句是调用operator (),由于ifstream类里没有一个重载operator ()的成员
函数,所以编译就不能通过。 |
v****c 发帖数: 32 | |