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;
}