c ++将char*转换为对象?

Ido*_*dov 1 c++ casting operator-overloading


在C++中是否有可能将字符数组转换为如下对象:

char* bytes = some bytes...
MyObject obj = (MyObject)(bytes);
Run Code Online (Sandbox Code Playgroud)


如何定义强制转换运算符?
谢谢 :)

Tim*_*Tim 9

您可能想要为MyObject定义构造函数:

class MyObject {
public:
  explicit MyObject(const char* bytes);
  ...
};

MyObject::MyObject(const char* bytes) {
  // do whatever you want to initialize "MyObject" from the byte string
}
Run Code Online (Sandbox Code Playgroud)

然后你可以使用它:

char* bytes = some bytes...
MyObject obj = MyObject(bytes);  // this will work
MyObject obj(bytes);             // so will this
Run Code Online (Sandbox Code Playgroud)