Я изучаю C и ничего не знаю о C ++. Учебник LazyFoo по SDL2, использующий C ++, работает с двойными двоеточиями, чего я не понимаю и поэтому не могу следовать в 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:
}
Здесь все имеет смысл, кроме параметров функции и параметров LoadBMP. Я не знаю, что означает ::
, и я не знаю, что означает path.c_str()
.
Пожалуйста, кто-нибудь может объяснить это таким образом, который имеет смысл в C, или предложить обходной путь только для C?