C++Error2208:…尝试引用已删除的函数

C++Error2208:…尝试引用已删除的函数

在使用自己编写的类实例化c++linklist,结果编译器报了以下错误

错误 C2280 “LList::LList(const LList &)”: 尝试引用已删除的函数 l

从错误的内容看,似乎是自己的类的赋值构造函数被尝试调用却发现其已被删除。

一般而言,对象的赋值构造函数如果开发者没有提供,则编译器会生成默认的赋值构造函数。然而,默认的赋值构造函数在以下几种情况会被删除。

该类含有非静态的const成员变量
该类含有非静态的reference成员变量
该类含有不能被拷贝的成员变量
该类含有不能被拷贝的基类
该类含有用户定义的移动构造函数或者移动赋值函数
.
最终我将除传回的参数改为引用,成功解决了该问题,编译器仅仅给出了警告。
下面是通过编译的程序。

LList& reverse()
	{
		moveToEnd();
		LList<E>  reverselist;
		reverselist.init();
		
		while (curr != head)
		{
			reverselist.insert(curr->next->element);
			prev();
		}
		prev();
		reverselist.insert(curr->next->element);
		return reverselist;
	}

这个成员函数是在LList类中的一个成员函数,最后的返回值是这个类的一个对象。

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值