需要帮助改进我的 c++ 和类创建 2.
Need help improving my c++ and class creation 2
我想知道我可以在哪里改进我的程序,以及我的代码遇到了问题。
这是我的英雄类和来源,它告诉我我已经hero h;
调用已删除的函数以及如何通过此函数传递统计信息? 在我弄清楚这一点之前,我已经//
类构造函数。
class hero : public Stats {
//protected:
public:
void raceAndClass() {
Stats S(10,10,10,10,10,10);
race c_race(race::orc, S);
//classes c_classes(classes::fighter, modStats, sneak, bluff, deplomacy, swim, mana, run);
using namespace std;
}
};
int main()
{
hero H;
H.raceAndClass();
while (true);
}
这是我的下一个班级统计数据
class Stats {
public:
int //default stats
Str = 10,
Dex = 10,
Con = 10,
Int = 10,
Wis = 10,
Chr = 10;
Stats(int STR, int DEX, int CON, int INT, int WIS, int CHR) :
Str(STR), Dex(DEX), Con(CON), Int(INT), Wis(WIS), Chr(CHR) {
}
};
我的种族CPP和标题
#include"stats.h"
class race {
public:
enum raceOpt { orc, elf, human };
race(raceOpt c_raceOpt, Stats &stats);
//race opt outcomes
void ORC(Stats& stats) {
stats.Str += 2;
stats.Int -= 2;
stats.Chr -= 2;
}
void ELF(Stats &stats) {
//elf code and stat changes
}
void HUMAN(Stats &stats) {
}
};
#include"race.h"
race::race(raceOpt c_raceOpt, Stats &stats) {
switch (c_raceOpt) {
case orc:
ORC(stats);
break;
case human:
//human code
break;
case elf:
//elf code
break;
}
}
最后是我的课程CPP和标题。(当前未调用(
#include"stats.h"
class classes {
public:
enum classOpt { fighter, mage, soccerPlayer };
classes(classOpt c_classOpt, double ModStats[_MAX_PATH], int& Sneak, int& Bluff, int& Deplomacy, int& Swim, int& Mana, int& Run);
void Fighter(int& SWIM, int& RUN, int& BLUFF, double ModStats[_MAX_PATH]) {
SWIM = static_cast<int>(SWIM + std::round(((ModStats[1] * 2.3))));
RUN = static_cast<int>(RUN + (std::round(((ModStats[1] * 2)))));
BLUFF = static_cast<int>(BLUFF + std::round(((ModStats[0] * 2.5))));
}
void Mage(int& MANA, int& DEPLOMACY, int& BLUFF, double ModStats[_MAX_PATH]) {
//code to be added
}
void SoccerPlayer(int& RUN, int& SWIM, int& DEPLOMACY, int& SNEAK, double ModStats[_MAX_PATH]) {
//code to be added
}
};
#include"classes.h"
classes::classes(classOpt c_classOpt, double ModStats[_MAX_PATH], int& Sneak, int& Bluff, int& Deplomacy, int& Swim, int& Mana, int& Run) {
switch (c_classOpt) {
case fighter:
Fighter(Swim, Run, Bluff, ModStats);
break;
case mage:
Mage(Mana, Deplomacy, Bluff, ModStats);
break;
case soccerPlayer:
SoccerPlayer(Run, Swim, Deplomacy, Sneak, ModStats);
break;
}
}
您的hero
类派生自Stats
。您的Stats
类需要一个带有一堆参数的构造函数调用;没有默认构造函数。因此,您不能仅使用 hero H;
调用默认的 hero
构造函数,因为没有构造函数(这就是编译器告诉您不能引用已删除方法的地方(。你需要为 hero
实现一个无参数构造函数,它使用合适的参数调用 Stats
构造函数。
我重做了我的统计课和我的英雄课!! 我还将参加我的统计课并向其添加更多统计数据/技能,并重新找到我的职业。 感谢您的帮助!!
#pragma once
class Stats {
public:
int //default stats
Str = 10,
Dex = 10,
Con = 10,
Int = 10,
Wis = 10,
Chr = 10;
Stats(){}
};
//hero class vvvvv
class hero : public Stats {
private:
Stats s;
public:
hero() {
race c_race(race::orc, s);
std::cout << s.Str << std::endl;
std::cout << s.Int << std::endl;
std::cout << s.Chr << std::endl;
std::cout << s.Wis << std::endl;
//classes c_classes(classes::fighter, modStats, sneak, bluff, deplomacy, swim, mana, run);
}
};
相关文章:
- 如何创建一个CMake变量,除非显式重写,否则使用默认值
- 使用std::multimap迭代器创建std::list
- 在全局变量中保存类的实例以重新创建类(创建"backup")
- 使用CMake创建QML插件
- 如何在c++中为模板函数实例创建快捷方式
- 在C++中,是否可以基于给定的标识符创建基类的新实例,反之亦然
- 创建一个函数以在输入为负数或零时输出字符串.第一次执行用户定义的函数
- OpenCV EqualizeHist()从彩色图像创建黑白图像
- 试图在visual studio上用C++创建一个桌面应用程序
- std::threads可以从Windows DLL中的全局变量创建/销毁吗?
- 如何在C++20中创建模板别名的推导指南
- 如何为模板化对象创建模板向量?VS正在投掷C3203
- 如何创建一个空的全局类并在启动时实例化它
- 无法创建抽象类的实例
- 链接到自行创建的dll失败
- 为什么我不能在不创建字符串变量的情况下使用函数的字符串输出
- 有没有一种方法可以创建一个带有哈希表的数据库,该哈希表具有恒定时间查找功能
- 如何在C++类内存结构中创建"spacer"?
- 终端不会为C++文件创建.exe文件吗
- 在createdialog创建的窗口中捕获用于编辑控件的OnMouseMove消息