【发布时间】:2015-11-17 01:58:05
【问题描述】:
我正在创建一个快速游戏,并使用不同的类文件来输入玩家姓名。我不断收到指定的错误:
使用 '&' 为成员创建指针
当我试图从 main 调用函数时。
函数getPlayerOne 和getPlayerTwo 是公共函数。我认为这是因为我正在更改 player1 值,所以我需要一个指针,但是当我尝试添加一个指针时,它给了我同样的错误。
如何使用指针编辑字符串的值?
主要:
#include <iostream>
#include <string>
//Included Header Files
#include "Player.h"
using namespace std;
int main() {
Player players;
cout << players.getPlayerOne << endl;
cout << players.getPlayerTwo << endl;
}
播放器.h:
#pragma once
#include <iostream>
#include <string>
using namespace std;
class Player
{
public:
//Initialize player1
void getPlayerOne(string &playerOne);
void getPlayerTwo(string &playerTwo);
Player();
private:
//Players
string player1;
string player2;
};
播放器.cpp
#include "Player.h"
Player::Player()
{
}
void Player::getPlayerOne(string &playerOne) {
cout << "Enter player 1 name: \n";
cin >> playerOne;
cout << playerOne << " is a great name!\n";
player1 = playerOne;
}
void Player::getPlayerTwo(string &playerTwo) {
cout << "Enter player 2 name: \n";
cin >> playerTwo;
cout << playerTwo << " is a great name!\n";
player2 = playerTwo;
}
我可能只是将 Player 代码放在 main 中,因为它太小了,但我认为当(最终)我可以编写具有更多字符的文件时,最好有单独的类。
【问题讨论】:
-
cout << players.getPlayerOne << endl;想做什么?这没有任何意义。 -
我想你很困惑。为什么要声明该函数采用一个字符串参数?另外,你为什么不带括号调用函数?这就是令人困惑的地方——您声明该函数采用一个参数,但您尝试(即使它失败)在没有参数的情况下调用它。
-
您必须使用
( )来调用函数。否则编译器会认为你试图引用该函数而不调用它。另外,getPlayerOne不返回值,所以cout << players.getPlayerOne()是非法的。 -
没关系,修好了。我需要拿出 cout 并把它们放在 player.getPlayerOne();如果有任何意义,则使用字符串作为参数。感谢您提供帮助 :) 在提交问题之前,我必须先检查一下。