C++引用其实就是给变量起个别名,定义引用时必须要初始化为变量,不能初始化为常量。
定义引用变量
int i = 100;
int& ref1 = i;//引用必须初始化,不可以先定义在复制==赋值
cout << ref1;//输出就是i的值
//直接修改引用变量的值就可以修改原来变量的值,修改原来变量的值,引用变量的值也会被修改。
ref1 = 2000;
//引用时必须类型对应
double db1 = 99.9;
int ref2 = db1;//错误的,两个类型不一致
//不可以将非常量引用初始化为常量
int ref3 = 100;//错误的,初始化时不可以初始化为常量
const int ref4 = 100;//这个是正确的,使用const的引用可以初始化为常量。
引用变量做参数
这里将一些信息写入到文件中,使用<sstream>库,可以将字符串和变量连接。
//将用户信息存入指定文件名(动态的)的文件中
void storguserinfo(const string& username, const unsigned long& account, const string& phonenumber){
stringstream ss;//字符串拼接变量,ss.str()返回拼接后的字符串
string tempfile = "G:\\SpeedOffical-wh\\CCode\\Bank\\Data\\";
ss << tempfile << username << "_" << account << ".txt";
tempfile = ss.str();
//tempfile += ".txt" + "_" + username;
ofstream fout(tempfile, ios::out);
if (!fout){
cout << "打开文件失败" <<endl;
exit(1);
}
fout << "姓名" << "\t" << "账号" << "\t\t" << "手机号" << endl;
fout << username << "\t" << account << "\t" << phonenumber << endl;
fout.close();
}
使用引用做参数时,直接将变量传入即可。
storguserinfo(username, account, phonenumber);//将信息写入到文件中