Class | Modules: bus issue

Viewed 40

I am a C ++ beginner and I am working with classes and modules. When I try to run the app, the app gives me the following error: zsh: bus error /Users/****/Documents/jacoProject/App. On the internet I searched a lot, but I found things that I didn't understand and that I couldn't apply to my code.

Should I implement a destructor? If so how can I implement it with my class? Thanks in advance

func.cxx

module;
#include <string>

export module airline_ticket;
export class AirlineTicket
{

public:

  AirlineTicket();

  double calculatePriceInDollars();

  std::string getPassengerName();
  void setPassengerName(std::string name);

  int getNumberOfMiles();
  void setNumberOfMiles(int miles);

  bool hasEliteSuperRewardsStatus();
  void setHasEliteSuperRewardsStatus(bool status);

private:
  std::string q_passengerName;
  int q_numberOfMiles;
  bool q_hasEliteSuperRewardsStatus;

};

func_impl.cxx

module;
#include <string>
module airline_ticket;

AirlineTicket::AirlineTicket()
{
q_passengerName = "..not";
q_numberOfMiles = 0;
q_hasEliteSuperRewardsStatus = false;
}

double AirlineTicket::calculatePriceInDollars() 
{
  if (hasEliteSuperRewardsStatus())
  {
    return 0;
  }
  else
  {
    return getNumberOfMiles() * 0.1; 
  }
}


std::string AirlineTicket::getPassengerName() 
{
  return q_passengerName;
}


void AirlineTicket::setPassengerName(std::string name) 
{
  q_passengerName = name; 
}


int AirlineTicket::getNumberOfMiles() 
{
  return q_numberOfMiles;
}


void AirlineTicket::setNumberOfMiles(int miles) 
{
  q_numberOfMiles = miles; 
}


bool AirlineTicket::hasEliteSuperRewardsStatus() 
{
  return q_hasEliteSuperRewardsStatus;
}


void AirlineTicket::setHasEliteSuperRewardsStatus(bool status) 
{
  q_hasEliteSuperRewardsStatus = status;
}

main.cpp

#include <iostream>
import airline_ticket;

int main()
{
  AirlineTicket myTicket;
  myTicket.setPassengerName("Will SMith");
  myTicket.setNumberOfMiles(450);
  double ticketCost {myTicket.calculatePriceInDollars()};
  std::cout << ticketCost << std::endl;
  return 0;
}
0 Answers
Related