【发布时间】:2026-02-14 01:35:04
【问题描述】:
我想使用赋值运算符返回一个类的属性值。我试图实现这个目的。我在网上搜索了很多,但我访问的所有网站都谈到了如何重载赋值运算符来像这样的类的复制构造函数:class_t& operator=(class_t&);。谁能帮我重载此运算符以返回类属性的值?
这是我的代码:
class A_t
{
private:
int value = 0;
public:
int operator = (A_t); // I failed to overload assignment operator for this
A_t& operator = (int); // I succeeded to overload assignment operator for this
int Value();
void setValue(int);
};
A_t& A_t::operator = (int value)
{
this->setValue(value);
return *this;
}
int operator = (A_t &data)
{
return data.value;
}
int A_t::Value() { return this->value; }
void A_t::setValue(int data) { this->value = data; }
int main()
{
A_t object = 3;
int value = object; // Error: cannot convert 'A_t' to 'int' in initialization
cout << value << endl;
return 0;
}
【问题讨论】:
-
我建议您检查您的方法,因为您在使用复制构造函数的签名时试图重载赋值运算符。见 *.com/questions/12688942/…>
标签: c++ operator-overloading assignment-operator