我试图在c++中测试非常基本的OO,但我遇到了一个问题。我写了以下类:
演员职业:
#pragma once
#include <string>
class Actor
{
private:
void setName(std::string inputName);
public:
std::string name{};
Actor(std::string inputName = "Actor");
std::string getName();
};
个字符
字符类
#pragma once
#include "Actor.h"
class Character : public Actor
{
public:
int maxHealth{};
int currentHealth{};
Character(std::string inputName = "Character", int inputHealth = 100);
int getCurrentHealth();
};
#include "Character.h"
Character::Character(std::string inputName, int inputHealth) :
Actor{inputName}, maxHealth{inputHealth}, currentHealth{inputHealth}
{
}
int Character::getCurrentHealth()
{
return currentHealth;
}
的字符串
玩家等级
#pragma once
#include "Character.h"
class Player : public Character
{
public:
Player();
};
#include "Player.h"
Player::Player():
Character{"Player", 200}
{
}
#include <iostream>
#include "Player.h"
int main()
{
Player a{};
std::cout << "Actor name is: " + a.getName() << std::endl;
std::cout << "Player health is: " + a.getCurrentHealth() << std::endl;
return 0;
}
在本例中,a.getName()
正常打印,返回字符串“Player”。但是,a.getCurrentHealth
不会打印。不仅仅是数值,而是整个句子“玩家健康是:”不是打印。知道发生了什么吗
1条答案
按热度按时间dffbzjpn1#
C++中没有将整数加到字符串的操作。使用
<<
而不是+
来获得您想要的输出。字符串
你的代码正在做的是 * 指针算术 *。字符串字面量被解释为一个
char
指针,然后将健康值添加到该指针,并将结果地址(可能指向任何地方)打印出来,就好像它指向一个C风格的字符串一样。