无法将参数1从const wchar_t [9]转换为wchar_t

时间:2018-12-06 09:02:23

标签: c++

FULL CODE

我正在遵循此tutorial,并逐步遵循了他的教程,当他进入第8集时,我在Level1.h中遇到了错误。

void Level1::Load()
    {
        sprites = new SpriteSheet(L"test.png", gfx);
    }
  

错误

     

'SpriteSheet :: SpriteSheet(const SpriteSheet&)':无法将参数1从'const wchar_t [9]'转换为'wchar_t *'

我已经两次编写了Level1.h,Spritesheet.cpp和Spritesheet.h,试图在“ test.png”之前删除“ L”。
还想指出我有Visual Studio 2017。

如果您能解决我的问题<3,我会爱你的。

Full code

1 个答案:

答案 0 :(得分:4)

C ++中的字符串实际上是字符类型的常数数组,这就是为什么L"test.png"被称为类型const wchar_t [9](大小为9以适合终止符)的原因。

与其他任何数组一样,它可以衰减为指向其第一个元素的指针,并且该指针的类型为const wchar_t*

请注意,在上述类型中使用了const……这就是构造函数参数中缺少的内容。应该是

SpriteSheet(const wchar_t* filename, Graphics*gfx);
//          ^^^^^
// Note the const here