在字符串的情况下,在c ++中重载=运算符

Bas*_*ngh 2 c++ operator-overloading visual-c++

我想执行以下操作

int p = "xyz"
Run Code Online (Sandbox Code Playgroud)

我应该包含3,即=右侧字符串的长度.

我尝试使用char*数据成员创建一个类String,但是我在重载=运算符时遇到了麻烦,因为我们必须传递我们正在重载运算符的类的至少一个对象.

请帮忙.

我试着做以下事情:

friend void operator=(int, char*)
Run Code Online (Sandbox Code Playgroud)

但由于没有类类型的参数,它将无法工作.

Syn*_*xis 10

这是不可能的,operator=对于整数类型是不可重载的.看到这个答案.

如果您使用std::string,解决方案很简单:

std::string p = "abc";
int l = p.size(); // Better than l = p, because self describing
Run Code Online (Sandbox Code Playgroud)