C++问题:这段代码里T t和T& t有什么区别?
答案:3 悬赏:0 手机版
解决时间 2021-03-24 20:26
- 提问者网友:嘚啵嘚啵
- 2021-03-24 14:42
C++问题:这段代码里T t和T& t有什么区别?
最佳答案
- 五星知识达人网友:渊鱼
- 2021-03-24 15:14
构造函数: 在如下定义时调用: T t; T *s = new T[n];
T(){
cout<<"T::T()"< }
拷贝构造函数: 如下定义时调用: T a; T b(a); T c = a; (拷贝引用对象的成员, b和c等于调用了拷贝构造函数;只在初始化且参数是本类型时才会调用, 如c = a 时不会调用, 因为它不是在初始化时).
T(T& a){
cout<<"T::T(T&)"< }
析构函数: 在对象销毁是调用.
~T(){
cout<<"T::~T()"< }
默认的拷贝构造函数,它默认复制引用对象的所有成员, 你也可以对它进行重载来完成成员变量的自定义,如指针的空间分配.
T(){
cout<<"T::T()"<
拷贝构造函数: 如下定义时调用: T a; T b(a); T c = a; (拷贝引用对象的成员, b和c等于调用了拷贝构造函数;只在初始化且参数是本类型时才会调用, 如c = a 时不会调用, 因为它不是在初始化时).
T(T& a){
cout<<"T::T(T&)"<
析构函数: 在对象销毁是调用.
~T(){
cout<<"T::~T()"<
默认的拷贝构造函数,它默认复制引用对象的所有成员, 你也可以对它进行重载来完成成员变量的自定义,如指针的空间分配.
全部回答
- 1楼网友:人類模型
- 2021-03-24 16:31
前面是普通的传入参数,后者是引用,功能和穿指针差不多,但使用上没指针那么麻烦,里面的值改了,外面的值也变了追问这点我知道,可是传入参数为什么t里的i就变化了呢?追答就是一个地址有两个符合变量表示它,也有人说是在产生引用,在函数结束后产生一个临时变量,把值放到临时的变量里面,当退回的主函数里面后再把这个值赋值给那个变量
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯