#include <vector>
#include <cstdlib>

using numeric_t = int;//added to resolve type

class point_c{};//added to resolve type

class cell_c:public point_c {
public:
        double p;
	std::vector<const cell_c *> NP;// 8 Neighbors Pointer
        virtual bool calculateFD(numeric_t & FAe, numeric_t & FAw, numeric_t & FAn, numeric_t & FAs,
			                 numeric_t & DAe, numeric_t & DAw, numeric_t & DAn, numeric_t & DAs) = 0;//pure virtual since its not implemented
	cell_c() {
             p=0;

		for(size_t i=0; i!=8; ++i) {

			NP.push_back(nullptr);
		}
	}
};

class uCell_c:public cell_c {

public:
bool calculateFD(numeric_t & FAe, numeric_t & FAw, numeric_t & FAn, numeric_t & FAs,
			                 numeric_t & DAe, numeric_t & DAw, numeric_t & DAn, numeric_t & DAs);
};

bool uCell_c::calculateFD(numeric_t & FAe, numeric_t & FAw, numeric_t & FAn, numeric_t & FAs,
			                 numeric_t & DAe, numeric_t & DAw, numeric_t & DAn, numeric_t & DAs) {
    FAe=p+NP[0]->p;//p cannot be resolved, why?
    return true;//needs to return something
}

int main()
{
	
}
