I am developing a new project using c++:
File A.cpp
#ifndef A_hpp
#define A_hpp
class A{
public:
    A(int at, int bt);
    ~A();
    virtual double b()=0;
    virtual double c()=0;
    virtual double g()=0;
private:
    int at;
    int bt;
};
#endif /* A_hpp */
File A.cpp
#include "A.hpp"
A::A(int at, int bt){
    this->at=at;
    this->bt=bt;
}
A::~A(){
    //no code
}
File B.hpp
#ifndef B_hpp
#define B_hpp
#include "A.hpp"
class B:public A{
public:
    B(int at, int bt, double val);
    ~B();
private:
    double *elems;
};
#endif /* B_hpp */
File B.cpp
#include "B.hpp"
#include "A.hpp"
B::B(int at, int bt, double val):A(at, bt){
    elems=new double[at*bt];
    for(int i=0;i<at*bt;i++)
        *(elems+i)=val;
}
B::~B(){
    delete []elems;
}
double A::c(){
        return *elem;
    }
double A::b(){
        return (*elem)-*(elem+1);
    }
double A::g(){
        return (*elem)*(*elem)*(*elem);
    }
I get an error, Use of undeclared identifier 'elem', when I implement these virtual function b(), c() et g() in the class B
 
     
     
     
    