[C++/CLI] Odwołanie do obiektu nie zostało ustawione na wystąpienie obiektu.

0

Witam.

Problem polega na błędzie podczas działania programu - a konkretnie kliknięciu na Button:

Projekt nowy, minimalny tak żeby był jak najbardziej czytelny:

klasa.h

class ktestowa
{
private:
	int a;
public:
	void zmienA(int);
	int dajA();
};

void funkcja(ktestowa*);

klasa.cpp

#include "stdafx.h"

void ktestowa::zmienA(int c)
{
	this->a = c;
}

int ktestowa::dajA()
{
	return this->a;
}

funkcje.cpp

#include "stdafx.h"

void funkcja(ktestowa* obiekt)
{
	obiekt = new ktestowa();
}

Form1.h // Testowy - nazwa projektu

#pragma once

namespace Testowy {
...
public ref class Form1 : public System::Windows::Forms::Form
	{
        private: ktestowa* obiekt;
        ...
        private: System::Void Form1_Load(System::Object^  sender, System::EventArgs^  e) 
			 {
				 funkcja(obiekt);
				 obiekt->dajA();
			 }
        }
};

Błąd:

Odwołanie do obiektu nie zostało ustawione na wystąpienie obiektu.
I wskazanie na: 	`return this->a;` w pliku klasa.cpp

Z góry dziękuję za pomoc.

Pozdrawiam
0

Problem leży w tym że ty tak naprawde nie inicjujesz private: ktestowa* obiekt i pozostaje on NULL co objawia się tym błędem

Funkcja void funkcja(ktestowa* obiekt) pracuje jedynie na lokalnej kopi wskaźnika która zostaje niszczona po wyjściu z funkcji

Ech nie zobaczyłem że odpowiam na post który ma już trochę dni - trudno

1 użytkowników online, w tym zalogowanych: 0, gości: 1