c++ 把一个字符串赋值给一个 指向类的指针,不理解。

2024-12-15 11:12:15
推荐回答(5个)
回答1:

1 *((OctetStr*)value),注意前面有*,整体上是OctetStr的变量,不是OctetStr的指针。
2 在上面基础上很容易理解了,类OctetStr一定重载了操作符“=”。

总结:并不是把一个字符串赋值给一个指向类的指针,而是触发了OctetStr类对象的“=”操作符重载函数。

回答2:

字符串实际上是一个字符数组,也是一个字符指针,这样赋值的话,就是说value指向了一个字符指针,相当于是一个二维的字符数组.

回答3:

value是基类的对象指针,把指针指向的内容“abcdf”强制转化成派生类的对象*((OctetStr*)value)

回答4:

(OctetStr*)value已经转化成字符串指针了,指向“abcdef”;

回答5:

这里肯定是暗含了运算符重载