В настоящее время я получаю необработанное исключение в своем коде, и я понятия не имею, почему. Это первый раз, когда я использую более одного класса вместе.Необработанное исключение в моем меню
На данный момент я пытаюсь ввести пользовательский ввод в строку из другого класса. Я пытаюсь ввести пользовательский ввод в строке под названием имя в классе ниже
#ifndef SHIP_H
#define SHIP_H
#include "ApplicationMenu.h"
#include <string>
class Ship
{
public:
Ship(void);
~Ship(void);
std::string _size;
std::string _shipName;
std::string name;
};
#endif
В следующей функции, которая проходила в главном
#include "ApplicationMenu.h"
#include "Ship.h"
#include <string>
#include <sstream>
class Ship;
#include <iostream>
using namespace std;
ApplicationMenu::ApplicationMenu(void) { userChoice = 0; }
ApplicationMenu::~ApplicationMenu(void) { }
void ApplicationMenu::displayMenu() {
cout << "Welcome to the Port." << endl << "Please select one of the
following options : " << endl
<< "1: Dock Ship" << endl;
cin >> userChoice;
switch (userChoice)
{
case 1:
Ship* ship;
ship->name;
cout << "Please enter the name of your ship your wish to dock: ";
cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
getline(cin, ship->name);
cout << ship->name;
break;
}
}
Может кто-нибудь, пожалуйста, сообщите почему я получаю сообщение об ошибке?
Edit:
Эта ошибка была из-за неинициализированный указатель, который был из-за отсутствие знаний о указателях в C++. Хотя на это ответил сообщество, эта ссылка окажется полезной для будущих зрителей. http://www.cplusplus.com/doc/tutorial/pointers/
Вы должны проверять такие ситуации, используя отладчик и прокладывая код за строкой. Какова должна быть цель этой строки кода 'ship-> name;' BTW? –
Это строка, в которой я пытаюсь прочитать ввод пользователя. – PapaSmurf
Да, мы можем это видеть. Но что должна делать эта линия? И не отвлекайся от моего главного совета! –