@mrbbfst

Почему this = NULL?

Data *d;
	d = new Data;
	Neuron *n = new Neuron(b);
	n->setD(d);
	n->t = 2;
	Layer *l = new Layer(n);
	l->setD(d);
	Weight *w = new Weight();
	w->setD(d);
	Net *q = new Net();
	q->setD(d);

Все кроме Data - экзепляры классов. Data это структура.
Все классы наследуют класс DacaCl :
class DataCl
	{
	public:
		void setD(Data*);
		Data *getD();
		int ifgetQuantLayer();

	protected:
		Data *d;
	};

double * neural_network_lib::Net::Think(int start = 0)
{
	if (start < this->getD()->iQuantLayer) {
		this->getD()->pdIn = this->n->pdfActivate(this->w->pdfPrioriti(this->getD()->pdIn, start), start);
		this->Think(++start);
	}
	return this->getD()->pdIn;
}

double * neural_network_lib::Weight::pdfPrioriti(double *pdIn, int iCount/*номер слоя*/)   //+
{
	double *pdOut = new double[this->getD()->piQuantNInLayer[iCount]];	// массив выходных данный с колличествон ячей равным количеству нейронов в слое iCount
	double dBuffer; //временные значения
	for (int i = 0; i < this->getD()->piQuantNInLayer[iCount]; i++) { // пробегается по нейронам
		dBuffer = 0;
		for (int j = 0; j < this->getD()->piQuantNInLayer[iCount - 1]; j++) //пробегается по входным данным для i-того нейрона
			dBuffer += this->getD()->pppdWeights[iCount-1][i][j]*pdIn[j]; //перемножает значения полученые в iCoint - 1 слое на вес для j-того входа i-того нейрона iCount-го слоя  и суммирует их
		pdOut[i] = dBuffer; //вписы вает в массив выходных данных 
	}
	return pdOut;;
}


double * neural_network_lib::Neuron::pdfActivate(double *pdInData, int iCount)
{
	double *pdOutData = new double[iCount];
	for (int i = 0; i < iCount; i++)
		pdOutData[i] = (this->*(this->dfActivate))(pdInData[i]);
	return pdOutData;
}


Data * neural_network_lib::DataCl::getD()
{
	return this->d;
}


При вызове фугкции Think(); когда выполнение доходит до getD() внутри функции pdfPrioriti, то в getD() this равна NULL
Почему так ?? и как это исправить?
  • Вопрос задан
  • 294 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы