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