I have a base class A and in this class, there is a vector of the derived class B, and I add class C objects to this list (C is a derived class of B).
But now I am not able to access any variable either from B or C.
My class structure goes like this:
Skill.h
class Skill
{
public:
    Skill()
    {
    }
    vector <AttackSkill*> attacks;
    vector <UtilitySkill*> utilities;
    vector <MoveSkill*> movement;
};
AttackSkill.h
#pragma once
#include "Skill.h"
class AttackSkill :
    public Skill
{
public:
    AttackSkill()
    {
    }
    string skillName;       
    int dmgMod;
    int baseAcc;
};
One of the skills
#pragma once
#include "AttackSkill.h"
class Axeblade :
    public AttackSkill
{
public:
    Axeblade()
    {
        skillName = "Axeblade";     
        dmgMod = 0;
        baseAcc = 72;
    }
};
This is how to add new skill
attacks.push_back(new Axeblade);
I just want to be able to access variables.
Example:
"skillPtr" is a pointer to Skill object
for (int i = 0; i < skillPtr->attacks.size(); i++) //No problem here
{
    cout << "Skill " << i << ") " << skillPtr->attacks[i]->skillName << endl;
}
Error C2039 'skillName': is not a member of 'Skill'

 
    