需要帮助改进我的c ++和类创建2

时间:2017-11-15 23:56:56

标签: c++

我想知道我在哪里可以改进我的程序以及我的代码遇到了问题。

这是我的英雄级别和来源,它告诉我我有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;
    }

}

2 个答案:

答案 0 :(得分:1)

您的Stats课程来自Stats。你的hero类需要一个带有一堆参数的构造函数调用;没有默认构造函数。因此,您不能仅使用hero H;调用默认的hero构造函数,因为没有一个(编译器告诉您不能引用已删除的方法)。您需要为Stats实现一个无参构造函数,它使用合适的参数调用{% block contents %} <video name='demo' controls autoplay width='50%' height='40%'> <source src="{{STATIC_URL}}sample1.mp4" type="video/mp4"></source> </video> {% endblock %} 构造函数。

答案 1 :(得分:0)

我重新编写了我的统计课程和我的英雄课程!我还将参加我的统计课程,并为其添加更多的统计数据/技能,以及让我的班级课程重新加入。谢谢你的帮助!!!

#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);

        }
};