gpt4 book ai didi

c++ - 为什么编译器不显示这些返回类型的错误?

转载 作者:行者123 更新时间:2023-11-28 03:44:30 25 4
gpt4 key购买 nike

使用最新版本的 NetBeans 运行 Ubuntu 11.10 的默认安装。我有类似以下内容:

class MyClass {
public:
Type1 RunAlgo();
private:
Type2 Run();
}

Type1 MyClass::RunAlgo() {
//additional code
return Run();
}

Type2 Run() {
//additional code
Type2 obj;
return obj;
}

Type1 和 Type2 完全无关。我在编写 Run() 方法时在返回类型中输入了一个拼写错误,并惊讶地发现它已编译。我只是想知道为什么这不会返回错误并且编译正常?我错过了什么?

编辑:新样本。作为独立项目,这确实会产生错误。似乎无法发现为什么真正的项目确实可以编译。

class Node { };

//only difference here is that in my code I have a custom comparer
typedef map<Node*, map<Node*, double> > Network;

class HMM {
Network _network;
};

class Algorithm {
public:
HMM RunAlgo();
private:
Network _network;
Network Run();
};

HMM Algorithm::RunAlgo() {
return Run();
}

Network Algorithm::Run() {
return _network;
}

编辑2:

我为我表述不当的问题和示例表示歉意。以后我会更加小心示例。我已经工作了 10 个多小时,注意力不集中。以下示例重现了我的案例:

#include <map>

using std::map;

class Node {

};

typedef map<Node*, map<Node*, double> > Network;

class HMM {
public:
HMM(const Network& network) {};
Network _network;
};


class TestClass {
public:
HMM RunAlgo(int x, int y);
private:
Network _network;
Network Run();
};

HMM TestClass::RunAlgo(int x, int y) {
return Run();
}

Network TestClass::Run() {
return _network;
}

将特定构造函数添加到 HMM 类后,它可以顺利编译。我不知道可以这样做,因为这是我第一次遇到这种情况。如果我浪费了您的时间,我再次表示歉意,感谢您尝试帮助我。

最佳答案

修复非测试用例中的错误后,my compiler does error out .

您关于 Type1Type2 不相关的说法一定是错误的。

下次注意真正的测试用例。

关于c++ - 为什么编译器不显示这些返回类型的错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8021794/

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