gpt4 book ai didi

c++ - 返回 NULL 但出现错误 C2440 : 'return' : cannot convert from 'int' to 'const &'

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:04:44 24 4
gpt4 key购买 nike

我有一个方法如下

class BuildOrderStrategy
{

public:

virtual const Urgency& getUrgency() = 0;
...
}

下面是哪个实现

const Urgency& RandomBuildOrderStrategy::getUrgency()
{
return NULL;
}

但是在编译时我得到了这个错误

error C2440: 'return' : cannot convert from 'int' to 'const Urgency &'

此时我真的很想从 getUrgency 方法返回一个 NULL 值。所以..我的代码有什么问题?我该如何解决?我来自 Java 世界,在那里这是完全可能的..

紧急的代码是这样的

class Urgency : public Investment
{
private:

public:
Urgency(BWAPI::UnitType type1, BWAPI::UpgradeType type2, BWAPI::TechType type3);
~Urgency(void);
};

最佳答案

从这种类型的函数返回 NULL 没有多大意义。您可能需要指针而不是引用。

NULL 被定义为 0(甚至 (void*)0),因为 0 是一个整数,它是您在此函数中返回的,它不适用于引用(必须引用实际对象)

在这种情况下,在您的函数中返回一个指向 Urgency 对象的指针更有意义。所以尝试更改对指针的引用。

const Urgency* RandomBuildOrderStrategy::getUrgency()
{
return NULL;
}

或者甚至尝试返回一个以特殊方式初始化的紧急类型,这样您可以稍后检查它是否为“空”。

关于c++ - 返回 NULL 但出现错误 C2440 : 'return' : cannot convert from 'int' to 'const &' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13356176/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com