首页 > 解决方案 > 我如何编辑抽象类的成员

问题描述

假设我有一个向量

vector <Weapon*> W_List;

和那 3 类

class Weapon {
protected:
    string name;
    int damage;
    int level;
public:
    Weapon() {

    }
    virtual void upgradeWeapon() {

    }
};

class Dagger : public Weapon {
public:
    Dagger(string _name){
        this-> name = _name;
        this-> damage = 30;
        this-> level = 1
    }
    void upgradeWeapon(int _dmg,int _lvl){
        this->damage = _dmg;
        this->level = _lvl;
    }
};

class Bow : public Weapon {
private:
        int range;
public:
        bow(string _name){
              this-> name = _name;
              this-> damage = 50;
              this-> level = 2
        void upgradeWeapon(int _dmg,int _lvl,int _range){
            this-> damage = _dmg;
            this-> level = _lvl;
            this-> range = _range;
        }
};

int main(int argc,char **argv) { 
    vector <Weapon*> W_List;
    if (argv[1] == "new"){
        if(argv[2] == "Dagger"){
            Dagger* dagger = new Dagger("argv[3]");
            W_List.push_back(dagger);
        }
        else if (argv[2] =="Bow"){
            Bow* bot = new Bow("argv[3]");  
            W_List.push_back(bow);
        }


     else if(argv[1] == "Upgrade"){
             //search in vector and upgrade the weapon
        }
}

所以我的问题是如果我给

升级“武器名”70 4

如何在向量中搜索武器名称并升级特定武器的属性?

标签: c++classvectorabstract-class

解决方案


推荐阅读