C++引用问题

C++语言 码拜 8年前 (2016-05-07) 1099次浏览
#include <iostream>
#include <string>
using namespace std;
class Advisor
{
int nootmeeting;
public:
Advisor(){ cout << “Advisor1 \n”; };
//Advisor(){ cout << “copy Advisor2 \n”; };
~Advisor(){ cout << “~Advisor;\n”;}
private:
};
class student
{
string name;
int semeterHours;
double averge;
public:
student(string pnname = “no name”) :name(pnname), semeterHours(0), averge(0){};
int getHours(){ return semeterHours; }
double aaverge(){ return averge; }
void display(){ cout << “name: “<<name<< ”  hours: ” << semeterHours << ”  averge = ” << averge<<“\n”; }
~student(){ cout << “~student \n”; };
private:
};
class GraStudent:public student
{
Advisor advisor;
int grade;
public:
GraStudent(const string& PN, Advisor& pp) :student(PN), advisor(pp), grade(0){};  //这里使用应用与不使用有什么区别?
~GraStudent(){ cout << “~GraStudent \n”; }
void display()
{
student::display();
cout << ”  Advisor: ” << grade << “\n”;
}
};
void f(Advisor& dd)
{
GraStudent rs(“deng”, dd);
rs.display();
rs.student::display();
}
int main()
{
Advisor ss;
f(ss);
}
解决方案

20

引用赋值和一般变量赋值的区别有两点:
1、引用赋值实际上是一个变量地址的传递,而变量赋值是一个新变量构造、值拷贝的过程;
2、引用赋值的两个变量其实指的是同一个数据,而变量赋值后的两个变量互不相干。
在函数参数传递中,对于对象,通常用引用传递,原因就是上面的第一点,它不会多出一个对象构造和对象复制的过程,可以提高效率。

20

体积较大的对象的传参,尽量使用引用常量传参,而不是传值方式。原因是传引用更高效,而且可以避免“截断问题”。
引用就是对象的别名。传引用进去与传对象本身毫无区别。

10

一句话回答你的问题
效率问题

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明C++引用问题
喜欢 (0)
[1034331897@qq.com]
分享 (0)