我是C ++的新手,还是编码的新手,我试图制作一个简单的基于文本的RPG,以获取一些乐趣。我已经制作了一个班级播放器,并尝试对其进行编辑,以便用户编辑playerName的名称,但出现错误,我真的不知道为什么。

我的主要方法:

// Thomas' Game.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <iostream>
#include <string>
#include "Player.h"
#include <fstream>
#include <istream>


using namespace std;

int main()
{
    Player player;

    cout << "Hello traveller, could I ask you your name?";
    cin >> player.setName;
    cout << "Hello " << player.getName << endl;


return 0;
}


我的球员班:
。H

#pragma once
#include <iostream>
#include <string>

using namespace std;

class Player
{
private:
    string playerName = "";
    string playerRace = "";
    int playerAge = 0;


public:
    void setName(std::string);
    string getName();
    void setRace(std::string);
    string getRace();
    void setAge(int);
    int getAge();
};


.ccp

#include "stdafx.h"
#include "Player.h"

void Player::setName(std::string name)
{
     playerName = name;
}
std::string Player::getName() {
     return playerName;
}
void Player::setAge(int age)
{
    playerAge = age;
}
int Player::getAge() {
    return playerAge;
}
void Player::setRace(std::string race)
{
    playerRace = race;
}
std::string Player::getRace() {
    return playerRace;
}



  严重性代码说明项目文件行抑制状态
  错误C2679二进制'>>':未找到采用'重载功能'类型的右操作数的运算符(或没有可接受的转换)Thomas'Game.cpp 18
  
  严重性代码说明项目文件行抑制状态
  错误C3867'Player :: getName':非标准语法;使用'&'创建指向成员Thomas'Game c:\ users \ thomas \ source \ repos \ thomas'game \ thomas'game \ thomas'game.cpp的指针


是我目前遇到的错误

最佳答案

第一个错误意味着您不能将输入直接从cin传递给setName函数,您应该首先将其存储在这样的变量中:

string name;
cin >> name;
player.setName(name);


出现第二个错误只是因为您缺少getName上的括号:

cout << "Hello " << player.getName() << endl;

关于c++ - 我的玩家类(class)中的 setter/getter 和塞脂剂问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48245260/

10-13 05:34