C++;类、对象和返回 我对我的代码没有什么问题,请回答。我是C++初学者。 我上过这门课: #include <iostream> #include <string> using namespace std; class Enemy{ public: string enemy(string n,int h,int d){ name = n; hp = h; dmg = d; cout << "Enemy name: " << n << " "; cout << "Hit Points: " << h << " "; cout << "Damage: " << d; } private: string name; int hp; int dmg; }; int main(){ Enemy enemy1; enemy1.enemy("Wolf",10,2); }

C++;类、对象和返回 我对我的代码没有什么问题,请回答。我是C++初学者。 我上过这门课: #include <iostream> #include <string> using namespace std; class Enemy{ public: string enemy(string n,int h,int d){ name = n; hp = h; dmg = d; cout << "Enemy name: " << n << " "; cout << "Hit Points: " << h << " "; cout << "Damage: " << d; } private: string name; int hp; int dmg; }; int main(){ Enemy enemy1; enemy1.enemy("Wolf",10,2); },c++,class,object,parameters,return,C++,Class,Object,Parameters,Return,我是否应该在敌方函数中使用return?如果我使用return,如何打印名称、hp和dmg 为什么我不能制造第二个物体,比如敌人的敌人2;然后打印出第二个敌人 enemy2.enemy("Blal","324","32");? 除了像玩家姓名这样的玩家外,我如何实现相同的功能:生命点:伤害:,我如何要求用户输入他的姓名并将其输入玩家姓名: 我知道这些问题是愚蠢的,但请回答它们,并为我糟糕的英语感到抱歉。除非你想返回数据,否则你不需要使用return-因此在这种情况下,要么将return类型

我是否应该在
敌方函数中使用return
?如果我使用return,如何打印
名称、hp和dmg

为什么我不能制造第二个物体,比如敌人的敌人2;然后打印出第二个敌人

enemy2.enemy("Blal","324","32");?  
除了像玩家姓名这样的玩家外,我如何实现相同的功能:
生命点
伤害:
,我如何要求用户输入他的姓名并将其输入玩家姓名:


我知道这些问题是愚蠢的,但请回答它们,并为我糟糕的英语感到抱歉。

除非你想返回数据,否则你不需要使用return-因此在这种情况下,要么将return类型设置为void,要么将函数更新为构造函数(这可能是你在这里想要的)。

让我们将其分解一下:

我应该在敌方函数中使用return吗

我相信你的编译器已经警告过你了。为什么?让我们看看
敌人
函数签名:

string enemy(string n,int h,int d){
因此它需要一个
string
和两个
int
s,并且应该返回一个
string
。不过,你什么也不退

如果我使用return,如何打印姓名、hp和dmg

与您在函数中所做的完全相同,只是您需要将所有内容都转换为一个字符串。使用
stringstream
最简单

// remember to
#include <sstream>

string enemy(string n,int h,int d) {
   // initialize variables
   // ...
   std::stringstream s;
   s << "Enemy name: " << n << "   ";
   s << "Hit Points: " << h << "   ";
   s << "Damage: " << d;
   // here we return the data
   return s.str();
}
//记住
#包括
字符串敌人(字符串n、整数h、整数d){
//初始化变量
// ...
std::strings;

s程序具有未定义的行为,因为成员函数
敌方()
在不返回
字符串的情况下在函数结尾流动。将返回类型更改为
void
,除非有一些值要报告给调用方,否则在这种情况下它不会出现。为什么不能创建第二个对象,如敌方enemy2?
// remember to
#include <sstream>

string enemy(string n,int h,int d) {
   // initialize variables
   // ...
   std::stringstream s;
   s << "Enemy name: " << n << "   ";
   s << "Hit Points: " << h << "   ";
   s << "Damage: " << d;
   // here we return the data
   return s.str();
}