构造函数传参数不能用引用类型吗
Rect<T>::Rect(T length,T height) 这句中构造函数的传参数为什么不能写成引用
比如这样Rect<T>::Rect(T &length,T &height)
Rect<T>::Rect(T length,T height) 这句中构造函数的传参数为什么不能写成引用
比如这样Rect<T>::Rect(T &length,T &height)
2015-11-16
如果你的T是基本类型 用引用做参数的话 实参是个值的话 可能会遇到右值引用问题
#include <iostream>//mooc提交用
using namespace std;//mooc提交用
class A{
public:
A(int &xa,int &xb){cout<<"A(&,&)"<<endl;};
};
class B{
public:
B(int &&a,int &&b){cout<<"B(&&,&&)"<<endl;};
};
int main(int argc, const char * argv[] )
{//---------------main--------------
int i=1,j=2;
//使用变量时 B报错
A a(i,j);
// B(i, j);//报错
//使用右值时 A报错
// A a1(1,2);//报错
B b(1,2);
//---------------main--------------
return 0;
}举报