Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/153.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在C+中失败+;Android上的构造函数 我在一些C++ Android NDK代码中有一个构造函数,它用于一个更大的Android项目中。这个构造函数缺少对一些参数的一些简单边界检查,这是我添加的。如果它们无效,对象初始化就没有意义。不幸的是,似乎有例外。编译器也不接受返回NULL(在启用-Wreturn type时,我得到一个错误),而且它似乎是错误的_Android_C++_Android Ndk - Fatal编程技术网

如何在C+中失败+;Android上的构造函数 我在一些C++ Android NDK代码中有一个构造函数,它用于一个更大的Android项目中。这个构造函数缺少对一些参数的一些简单边界检查,这是我添加的。如果它们无效,对象初始化就没有意义。不幸的是,似乎有例外。编译器也不接受返回NULL(在启用-Wreturn type时,我得到一个错误),而且它似乎是错误的

如何在C+中失败+;Android上的构造函数 我在一些C++ Android NDK代码中有一个构造函数,它用于一个更大的Android项目中。这个构造函数缺少对一些参数的一些简单边界检查,这是我添加的。如果它们无效,对象初始化就没有意义。不幸的是,似乎有例外。编译器也不接受返回NULL(在启用-Wreturn type时,我得到一个错误),而且它似乎是错误的,android,c++,android-ndk,Android,C++,Android Ndk,提供了一个概述,如果异常不是一个选项,但它们都是相当黑客的信号失败的其他方式。由于androidndk没有提供异常,我认为它可能会提供一些其他方法。是这样的,还是我必须求助于黑客手段?来自您的链接: android ndk提供的默认gcc版本不支持异常 这个答案真的过时了。(r16b)中完全支持例外情况。从您的链接: android ndk提供的默认gcc版本不支持异常 这个答案真的过时了。在(r16b)中完全支持异常。因为如果无法打开文件,对象将完全无效,一个选项可能是使用和类似于模式的东西

提供了一个概述,如果异常不是一个选项,但它们都是相当黑客的信号失败的其他方式。由于androidndk没有提供异常,我认为它可能会提供一些其他方法。是这样的,还是我必须求助于黑客手段?

来自您的链接:

android ndk提供的默认
gcc
版本不支持异常

这个答案真的过时了。(r16b)中完全支持例外情况。

从您的链接:

android ndk提供的默认
gcc
版本不支持异常


这个答案真的过时了。在(r16b)中完全支持异常。

因为如果无法打开文件,对象将完全无效,一个选项可能是使用和类似于模式的东西

(但是,我建议使用“InvalidObject”或“IOErrorObject”,而不是将其称为“NullObject”。)


通过这种方式,无论构造函数调用可能失败,您总是会返回一个有效的对象。另一个好处是,这种技术还可以简化调用代码,因为它有助于避免空检查。

因为如果无法打开文件,对象将完全无效,一种选择可能是使用和类似于模式的东西

(但是,我建议使用“InvalidObject”或“IOErrorObject”,而不是将其称为“NullObject”。)


通过这种方式,无论构造函数调用可能失败,您总是会返回一个有效的对象。另一个好处是,这种技术还可以简化调用代码,因为它有助于避免空检查。

支持异常(我认为您的链接有点过时),请阅读支持异常(我认为您的链接有点过时),请阅读该答案中的
gcc
,它可能指的是GNU编译器集合,而不是它的C编译器。接得好,谢谢<这个答案中的code>gcc可能指的是GNU编译器集合,而不是它的C编译器。接得好,谢谢!