после сбоя приложения после его запуска, PLS Help!C++! доступ к классу с помощью указателя
этот заголовок файла, который я делаю вектор, который содержит 2 значения являются X и Y. Vector2D.h:
#ifndef VECTOR2D_H
#define VECTOR2D_H
class Vector2D
{
public:
Vector2D(float x , float y):object_x(x) , object_y(y) {}
float getX() {return object_x;}
float getY() {return object_y;}
void setX(float x) {object_x = x;}
void setY(float y) {object_y = y;}
private:
float object_x;
float object_y;
};
#endif
Это заголовочный файл Я объявляю указатель для доступа вектор OMH.h
#include "Vector2D.h"
#include <iostream>
#ifndef OMH_H
#define OMH_H
using namespace std;
class OMH
{
public:
OMH();
~OMH(void);
void display();
Vector2D *getMouse()
{return mouse;}
private:
int x;
Vector2D *mouse;
};
#endif
OMH.cpp
OMH::OMH()
{
}
OMH::~OMH(void)
{
}
void OMH::display()
{
mouse->setX(5);
mouse->setY(1);
cout<<mouse->getX();
}
, когда я строю, он сменил
main.cpp
#include <iostream>
#include "OMH.h"
#include "Vector2D.h"
using namespace std;
int main()
{
OMH * object;
object->getMouse();
return 0;
}
Когда я бегу, он показал мне окно ошибки, которые говорят: «Объект используется withou intilized» затем он разбился.
'OMH * object;' - неинициализированный указатель, а его использование не определено, но почти наверняка будет аварийно. В этом случае вам не нужен указатель (но должен 'new' /' free', если вы считаете, что вам действительно нужен он). – crashmstr
Вы никогда не назначаете ничего «мыши». – dlf
Кроме того, почему вы делаете 'OMH :: ~ OMH (void)' в C++? 'OMH :: ~ OMH()' достаточно. – HolyBlackCat