c++ - 对类中函数的 undefined reference

标签 c++

主要.cpp:

#include <iostream>
#include "pokemonList.h"
void pokemonLookup();

int main() {
    pokemonLookup();
    return 0;
}

void pokemonLookup() {
    pokemonList pL;
    std::cout<<std::endl<<"What Pokemon do you want to look up? ";
    std::string pokemonLookup;
    std::cin>>pokemonLookup;
    pL.displayPokemon(pokemonLookup);
}

宠物小 Sprite 列表.h:

#ifndef POKEMONLIST_H
#define POKEMONLIST_H
#include <iostream>

class pokemonList
{
    private:
        struct pokemonTemplate {
            std::string pokemonName;
            std::string pokemonMoves[3];
            int pokemonLevel;
            int baseATK;
            int baseDEF;
            int baseSPATK;
            int baseSPDEF;
            int baseSPEED;
            };
        pokemonTemplate bulbasaur;
        pokemonTemplate pikachu;
    public:
        void displayPokemon(std::string pokemon);
    protected:
};

#endif // POKEMONLIST_H

宠物小 Sprite 列表.cpp:

#include "pokemonList.h"
/*
pokemonTemplate* bulbasaur() {
    bulbasaur.pokemonName = "Bulbasaur";
    bulbasaur.pokemonMoves[3];
    bulbasaur.pokemonLevel = 5;
    bulbasaur.baseATK = 10;
    bulbasaur.baseDEF = 10;
    bulbasaur.baseSPATK = 10;
    bulbasaur.baseSPDEF = 10;
    bulbasaur.baseSPEED = 10;
}

pokemonTemplate* pikachu() {
    pikachu.pokemonName = "Pikachu";
    pikachu.pokemonMoves[3];
    pikachu.pokemonLevel = 5;
    pikachu.baseATK = 8;
    pikachu.baseDEF = 10;
    pikachu.baseSPATK = 12;
    pikachu.baseSPDEF = 6;
    pikachu.baseSPEED = 15;
}
*/
void displayPokemon(std::string pokemon) {
    std::cout<<std::endl<<"Looking up: " + pokemon<<std::endl;
}

我意识到在 pokemonList.cpp 文件中我注释掉了一堆错误代码,这不是这个问题的目的。当我尝试编译时,我在 main.cpp 中遇到一个错误:

D:/CodeBlocks/Projects/RelearningCPlusPlus/main.cpp:15: undefined reference to `pokemonList::displayPokemon(std::string)'

最佳答案

您定义了一个函数 displayPokemon() 但它没有定义为成员函数。要将其定义为类定义之外的成员函数,需要提及类名:

void pokemonList::displayPokemon(std::string pokemon) {
    std::cout<<std::endl<<"Looking up: " + pokemon<<std::endl;
}

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

相关文章:

c++ - 为什么 OpenCV 中的 DMatch 是结构体而不是类

c++ - 交叉编译qt : Error while loading shared libraries

c++ - 如何打印 Qt :HANDLE on linux? (Qt5)

c++ - 将常量字符转换为字符 C++

c++ - 使用cmake和vs2010链接到静态boost lib而不自动链接

C++,在 CBuilder 2010 中传递参数时出现 ostream 错误

c++ - 为什么显示 "Received a connection from 0.0.0.0, port 0"?

c++ - 用户定义类型的优先级队列

c++ - (C++) 使用功能测试工具

c++ - Qt:复制隐式共享类的实例是线程安全的吗?