MyObject obj = new MyObject(para1);
在 Java 中,我总是可以在切换到 C++ 时执行此操作,它会给我一个错误:请求从“MyObject*”转换为非标量类型“MyObject”。
似乎修复它的方法是 MyObject* obj = new MyObject(para1);
。
如果我想要对象本身而不是指向对象的指针怎么办?
MyObject obj(para1);
是唯一适合我的方式吗?
由于我正在从 Java 切换到 C++,我也想知道:
MyObject* obj1 = new MyObject(para1);
如果我打印出 obj1
的值,它将是一个地址。
MyObject obj2(para1);
obj2
的打印输出值是多少?
最佳答案
Would
MyObject obj(para1);
be the only way that works for me?
是的,这是正常的方式。
What would be the printed-out value for obj2?
如果您没有重载正确的运算符,您将遇到编译器错误。 您使用具有以下签名的函数定义对象的打印方式:
std::ostream & operator<<(std::ostream & os, const MyObject & obj);
关于C++构造函数混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8448919/