2015-12-28 4 views
0

Я пытаюсь определить функцию loadMedia, используя объект ранее определенного класса LTexture в качестве первого входного аргумента. Второй входной аргумент - это строка пути к файлу.Входной аргумент не работает

bool loadMedia(LTexture textureName, std::string path) 
{ 
//Loading success flag 
bool success = true; 

//Load texture 

if (!textureName.loadFromFile(path.c_str())) 
{ 
    printf("Failed to load texture!\n"); 
    success = false; 
} 

return success; 
} 

Тогда в моем основном цикле:

//Load media 
    if (!loadMedia(mainCharTex,"dot.bmp") | !loadMedia(Enemy1Tex,"dot.bmp")) 
    { 
     printf("Failed to load media!\n"); 
    } 
    else 
    { 

Однако, когда я запускаю программу текстура не загружается. Если я набираю один из объектов текстуры (например, mainCharTex), где textureName находится в функции loadMedia, текстура успешно загружается. Из этого кажется, что первый входной аргумент не выполняется должным образом. Какие-либо предложения?

+1

Вы уверены, что вы хотите использовать * побитовое * или в состоянии ? –

+0

У вас есть опечатка. Вы используете побитовое ИЛИ вместо логического ИЛИ. –

ответ

1

Может быть, вам нужно передать textureName по ссылке, так что вы можете изменить его внутри функции и до сих пор изменения доступны в основной:

bool loadMedia(LTexture& textureName, std::string path) 
        ^
+0

Спасибо StillLearning, что сделал это – Dane

Смежные вопросы