C++ 重载=c+中的运算符+;如果是字符串

C++ 重载=c+中的运算符+;如果是字符串,c++,visual-c++,operator-overloading,C++,Visual C++,Operator Overloading,我想执行以下操作 int p = "xyz" 我应该包含3,也就是说,字符串的长度在= 我尝试用char*数据成员创建一个类字符串,但重载=运算符时遇到了问题,因为我们必须传递重载运算符的类的至少一个对象 请帮忙 我试着做到以下几点: friend void operator=(int, char*) 但是它不会工作,因为没有类类型的参数。不可能做到这一点,运算符=对于整数类型是不可重载的。 看 如果使用std::string,解决方案很简单: std::string p = "abc";

我想执行以下操作

int p = "xyz"
我应该包含3,也就是说,字符串的长度在=

我尝试用char*数据成员创建一个类字符串,但重载=运算符时遇到了问题,因为我们必须传递重载运算符的类的至少一个对象

请帮忙

我试着做到以下几点:

friend void operator=(int, char*)

但是它不会工作,因为没有类类型的参数。

不可能做到这一点,
运算符=
对于整数类型是不可重载的。 看

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

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

这可能会有帮助:什么,你不知道?我知道strlen,但我需要在不使用任何库函数的情况下使用重载来完成它。@basant_androidBuilder:不使用库函数:
int p=sizeof“xyz”-1,或编写自己的
strlen
。在没有异常限制的情况下,对字符串使用
std::string
。单靠超载是做不到的。谢谢。。但我正在寻找一种使用重载的方法。。。