对象在函数中未定义

object is undefined in function

本文关键字:未定义 函数 对象      更新时间:2023-10-16

我是C++新手,最近开始在学校练习课程。我真的看不出出了什么问题,在为 Hero 类创建一个对象"播放器"后,我以后无法在"主菜单"函数中使用该对象来调用方法,因为我收到"标识符未定义"错误!

有什么建议吗?

#include "stdafx.h"
#include <iostream>
#include <string>
#include <cstdlib>
using namespace std;
class Hero
{   
    private:
        //member variables
        string playername;
    public:
        //constructor
        Hero(string name)
        {
            playername = name;
        }
        string getName()
        {
            return playername;
        }
};
//start 1
void mainMenu()
{
    cout << " -  -  - |" << player.getName() << "-  -  - n";
}
void setPlayer()
{
    string name;
    cout << "Hello, what is your name? " << endl;
    getline(cin, name);
    Hero player(name);
    mainMenu();
}
int main()
{
    int selection;
    cout << "Shadow of darknessn ";
    cout << "1.) Start ";
    cout << "2.) Exit ";
    cin >> selection;
    if (selection == 1)
        setPlayer();
    else if (selection == 2)
        exit (0);
    else
        main();
    return 0;
}

好的,从main()调用main()是被禁止的(如此处所述(,所以不要这样做。

这是您的类的典型示例(该类很酷,我只是为了好玩而添加了一个初始值设定项列表(:

#include <iostream>
#include <string>
using namespace std;
class Hero
{
    private:
        //member variables
        string playername;
    public:
        //constructor
        Hero(string name) : playername(name)
        {
        }
        string getName()
        {
            return playername;
        }
};
int main()
{
    Hero player("Daniel");
    cout << "Player's name: " << player.getName() << std::endl;
    return 0;
}

输出:

球员姓名:丹尼尔

基于此,尝试使用您的逻辑并做您渴望的各种事情(在阅读了一些书籍/教程之后(!