方法签名不匹配会导致运行时崩溃吗?

时间:2019-04-17 05:39:43

标签: c++

我在C ++代码中出现运行时崩溃,仅当在Solaris机器SunOS 5.10 Generic_150400-27上执行并且使用Sun C 5.12编译器和C ++ 09标准时,才可以重现。 Windows或Linux上未复制它。一名开发人员确定问题可能是由于某个方法的hxx和cxx文件之间的签名不匹配所致。匹配方法签名后创建了一个测试.so,崩溃消失了。

hxx中的声明为:

string getAttributeList(void) const;

cxx中的实现是:

string getAttributeList() const
{
}

请注意,cxx文件中没有 void 。据说这导致了崩溃。后来,当签名匹配时,通过从声明中删除 void ,崩溃消失了。

我不认为这是崩溃的原因,因为这应该是编译时错误。但是,由于它正确构建且没有任何错误,因此这种签名不匹配会导致C ++运行时崩溃吗?

0 个答案:

没有答案