c++ - 对类的私有(private)函数的 undefined reference

标签 c++ class sdl undefined

因此,我正在调试一些我拼凑在一起的可怕代码,最后(希望如此)找到我的 scene_manager.cpp 中的最后一个错误,但我似乎不明白为什么我会得到它。 错误

|22|undefined reference to `scene_manager::applySurface(int, int, SDL_Surface*, SDL_Surface*)'|

scene_manager.cpp

#include "scene_manager.h"

scene_manager::scene_manager(screen_manager* s){
    screen = s;
}

void scene_manager::add_object(object_manager* obj){
    if(game_objects.find(obj->get_name()) != game_objects.end()){
        game_objects[obj->get_name()] = obj;
    }
}

void applySurface(int x, int y, SDL_Surface* source, SDL_Surface* destination){
    SDL_Rect offset;
    offset.x = x;
    offset.y = y;
    SDL_BlitSurface(source, NULL, destination, &offset);
}

int scene_manager::render(){
    for(iter = game_objects.begin(); iter != game_objects.end();iter++){
        applySurface(game_objects.at(iter->first)->get_x(),game_objects.at(iter->first)->get_y(),game_objects.at(iter->first)->get_sprite(),screen->get_screen());
    }
    if(SDL_Flip(screen->get_screen()) == -1){
        return 1;
    }
    return 0;
}

scene_manager.h

#ifndef SCENE_MANAGER_H
#define SCENE_MANAGER_H
#include "SDL/SDL.h"
#include "SDL/SDL_image.h"
#include "object_manager.h"
#include "screen_manager.h"
#include <map>
#include <string>

class scene_manager{
public:
    scene_manager();
    scene_manager(screen_manager* s);
    void add_object(object_manager* obj);
    int render();
private:
    std::map<std::string,object_manager*>game_objects;
    std::map<std::string,object_manager*>::iterator iter;
    screen_manager* screen;
    void applySurface(int x, int y, SDL_Surface* source, SDL_Surface* destination);
};
#endif

最佳答案

看来,这一行

void applySurface(int x, int y, SDL_Surface* source, SDL_Surface* destination){

想读书

void scene_manager::applySurface(int x, int y, SDL_Surface* source, SDL_Surface* destination){

关于c++ - 对类的私有(private)函数的 undefined reference ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18808879/

相关文章:

c++ - C++ 中 bool 的默认值

java - 在面向 Java 开发人员的 Eclipse 中使用 .class 文件

c++ - 由于无法访问主函数之外的 SDL 函数而导致崩溃

c++ - 对象销毁时内存泄漏

c++ - C 和 C++ --- undefined reference

c++ - GCC 编译器对定义和使用的静态变量发出警告

javascript - 如何添加推送到返回过滤数组的 getter 的功能?

C# 将泛型类型传递给另一个类

c++ - 如何混合具有多个 alpha 值的表面?

C++ 模板实例 : using enable_if directly, 或带有辅助类