gpt4 book ai didi

c++ - 在 C++ 中正确使用构造函数

转载 作者:行者123 更新时间:2023-11-30 00:49:18 24 4
gpt4 key购买 nike

我有一个简单的赋值函数如下:

LinkedList& LinkedList::operator=(const LinkedList &l) {
// handle self assignment
if (this == &l) {
return *this;
}

// free old elements of the list before the new elements from l are assigned
~*this();

// build the list as a deep copy of l (copy constructor handles empty case)
this(l);

return *this;
}

每当我运行我的程序时,我都会得到一个error: ‘this’ cannot be used as a function 响应。我应该如何在实际上下文中使用构造函数?非常感谢任何帮助!

最佳答案

您尝试的正确语法是:

this->~LinkedList();  
new(this) LinkedList(l);

您已经清楚地意识到避免代码重复是件好事,但是解决它的首选方法是使用 copy and swap idiom编写赋值运算符。

关于c++ - 在 C++ 中正确使用构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28595352/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com