gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 21:47:19 25 4
gpt4 key购买 nike

我正在学习C,对C++一无所知。 LazyFoo 使用 C++ 的 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:
}

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

请有人能以一种在 C 中有意义的方式解释它,或者建议仅使用 C 的解决方法吗?

最佳答案

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

SDL_Surface *loadSurface(const char *path)

这意味着对SDL_LoadBMP的调用可以写成

SDL_Surface *loadedSurface = SDL_LoadBMP(path);

如果您对学习 C++ 不感兴趣,那么 std::string 的作用以及为什么需要 .c_str() 的详细信息并不相关,在这种情况下也与教程无关。

关于c++ - C 相当于 C++ 的双冒号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51068270/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com