C++ various practice {class/ constructor destructor / Encapsulation}
배운 것들을 토대로 이런 저런 것들을 합쳐보았다
#include <iostream>#include <cassert>
class Fraction{private: int m_numerator; //분자 int m_denominator; //분모
public: Fraction() //default constructor { std::cout << "Fraction constructed." << std::endl; m_numerator = 0; m_denominator = 1; }
Fraction(int numerator, int denominator=1) { std::cout << "Fraction constructed with input." << std::endl; assert(denominator != 0); m_numerator=numerator; m_denominator=denominator; }
~Fraction() { std::cout<<"Fraction is deleted from memories." << std::endl; } void SetNumerator(int a) {m_numerator = a;} void SetDenominator(int b) {m_denominator = b;} int GetNumerator(){return m_numerator;} int GetDenominator(){return m_denominator;} double getValue(){return static_cast<double>(m_numerator)/ m_denominator;}};
class Date{private: int m_year = 2021; int m_month = 10; int m_day = 23;
public: Date(){std::cout << "Date constructed." << std::endl;}
~Date(){ std::cout << "Date is deleted from memories." << std::endl; }
void SetDate(int year, int month, int day) { m_year = year; m_month = month; m_day = day; } int GetYear(){return m_year;} int GetMonth(){return m_month;} int GetDay(){return m_day;}};
class Information{public: Fraction fraction; Date date; Information() { } ~Information() { std::cout << "Information deleted." << std::endl; }};
int main(){ int a,b,c;
Information* information = new Information; information->fraction.SetNumerator(2); information->fraction.SetDenominator(3); std::cout << information->fraction.GetNumerator()<<"/"<<information->fraction.GetDenominator()<<'\n' <<std::endl;
std::cout<<"Year : "; std::cin>>a; std::cout<<"Month : "; std::cin>>b; std::cout<<"Day : "; std::cin>>c; std::cout<<std::endl; information->date.SetDate(a,b,c); std::cout << information->date.GetYear() <<"/"<<information->date.GetMonth()<<"/"<<information->date.GetDay() <<std::endl;
//Fraction frac(2); //std::cout << frac.GetNumerator()<<"/"<<frac.GetDenominator()<<'\n' <<std::endl;/* Date* date = new Date(); std::cout<<"Year : "; std::cin>>a; std::cout<<"Month : "; std::cin>>b; std::cout<<"Day : "; std::cin>>c; std::cout<<std::endl; date->SetDate(a,b,c); std::cout << date->GetYear() <<"/"<<date->GetMonth()<<"/"<<date->GetDay() <<std::endl;
delete date; */
return 0;}
댓글
댓글 쓰기