我有一个定义为extBlock的类。

然后我用这个做一个该类的实例

extBlock mainBlock = new extBlock(1, 1024);


我收到此错误:
 错误C2440:“正在初始化”:无法从“ extBlock *”转换为“ extBlock”

任何人都可以帮助我,为什么我会收到此错误。

我在网上看到了用指针声明它的例子

extBlock *mainBlock = new extBlock(1, 1024);


但是,如果我这样做,就不会让我调用mainBlock的功能

最佳答案

这不是C#:new extBlock返回指向extBlock的指针,而您试图将该指针分配给值类型(这将是不兼容的强制转换)。

你想在这里写的是

extBlock mainBlock(1, 1024);


无法在第二个代码段上调用方法的原因可能是因为您使用的是.运算符,而不是需要取消引用指针的->arrow)运算符。

09-06 14:29