c ++成员函数名称与标准c库不明确

use*_*066 1 c c++

以下是我的示例代码

在foo()需要使用标准c库exit()来终止进程的成员函数中,但int CFoo::exit(void)在编译时它与成员函数有不明确的命名错误.

无论如何可以避免这个问题?

#include <stdlib.h>
#include <stdio.h>

class CFoo
{

public:

    void foo(void)
    {
        exit(0); // needs to use standard libc to exit process
    }

    void exit(void)
    {
        printf("exit\n");
    }
};

int main()
{

    CFoo obj;

    obj.foo();
}
Run Code Online (Sandbox Code Playgroud)

mer*_*011 6

替换exit(0)为::exit(0).这将迫使它使用全局范围的版本exit.