当前位置: 代码迷 >> 综合 >> C++,类,对象,引用--语法练习.
  详细解决方案

C++,类,对象,引用--语法练习.

热度:60   发布时间:2024-01-19 15:39:46.0

 

 

#include <iostream>
#include <string>
using namespace std;
// 定义一个类 Student
class Student
{
private:
string name;
int    age;
string address;
public:
// 存
void setname(string s){	name = s;}
void setage(int y){age = y;	}
void setaddress(string add){address = add;}    
// 取
string getname(){return name;}
int getage(){return age;}
string getaddress(){return address;}
protected:
};
// 独立函数,引用 作为形参
void SetStudent(Student & xs,string name,int age,string addr){
xs.setname(name);
xs.setage(age);
xs.setaddress(addr);	 
}
// 独立函数,同样使用 引用 作为形参
void Show(Student & x){
cout<<"姓名: "<<x.getname()<<" 年龄: "<<x.getage()<<" 住址: "<<x.getaddress()<<endl;   
}
int main(void)
{
Student x;  	// 定义一个Student 对象x
//虽然形参是引用,调用的时候直接用对象作为实参
// 等同于引用的定义 "Student & nx = x;",定义的时候就必须赋值
SetStudent(x,"柳絮飘",22,"学明路115号"); 
Show(x);
// 引用到底是啥玩意? 把他们的地址输出来看看
// 定义一个引用 nx,  C++ 引用在定义的时候必须付初始值,这点与指针不同
// 指针在定义的时候可以不赋值,但最好给它顺手赋NULL,以免乱指
Student & nx = x;
cout<<"对象x的地址是 :"<<&x<<endl;  // 结果是 0012FF50
cout<<"引用nx的地址是:"<<&nx<<endl; // 结果也是 0012FF50,说明与对象是同一个地址.就是同一个东西了.	
SetStudent(nx,"张生民",23,"琴海路136号"); //用引用nx作为实参,并修改后3个参数
Show(nx);
// 上述对引用nx的操作,实际就是对x的操作.
Show(x);	   // 在次调用x,这是发行x已经被修改了,说明nx就是x
// --------------------
return 0;
}

 

// --


  相关解决方案