C相当于C++的双冒号?

Ric*_*son -8 c c++ sdl

我正在学习C,对C++一无所知.使用C++的LazyFoo的SDL2教程做了一个我不理解的双冒号的东西,因此无法在C中跟随.

如果有帮助,这里是教程的链接:

http://lazyfoo.net/tutorials/SDL/04_key_presses/index.php

SDL_Surface *loadSurface( std::string path )
{
    //Load image at specified path
    SDL_Surface *loadedSurface = SDL_LoadBMP( path.c_str());
    if( loadedSurface == NULL )
    {
        printf("Unable to load image %s! SDL Error: %s\n", path.c_str(), SDL_GetError());
    }

    return loadedSurface:
}
Run Code Online (Sandbox Code Playgroud)

除了函数参数和LoadBMP参数之外,这里的所有内容都对我有意义.我不知道是什么::意思,我不知道path.c_str()是指什么.

请问,有人可以用在C语言中有意义的方式解释它,或者建议只使用C语言的解决方法吗?

小智 9

在C中,loadSurface将被简单地声明

SDL_Surface *loadSurface(const char *path)
Run Code Online (Sandbox Code Playgroud)

这意味着SDL_LoadBMP可以将调用写成

SDL_Surface *loadedSurface = SDL_LoadBMP(path);
Run Code Online (Sandbox Code Playgroud)

如果您对学习C++不感兴趣,那么所需要的内容std::string和原因的详细信息.c_str()是不相关的,并且在这种情况下也与教程无关.