-
#include<iostream>
-
using namespace std;
-
-
class Calc
-
{
-
protected: //private로 한 경우 하위 클래스에서 변수를 상속받지 못함
-
int a;
-
int b;
-
int c;
-
public:
-
Calc();
-
Calc(int new_A, int new_B);
-
~Calc();
-
void Prn();
-
};
-
-
Calc::Calc()
-
{
-
a=0;
-
b=0;
-
c=0;
-
cout<<"\n [Calc class 생성자 실행]"<<endl;
-
}
-
-
Calc::Calc(int new_A,int new_B)
-
{
-
a=new_A;
-
b=new_B;
-
c=0;
-
cout<<"\n [Calc class 생성자 실행]"<<endl;
-
}
-
-
Calc::~Calc()
-
{
-
cout<<" [Calc class 소멸자 실행]\n"<<endl;
-
}
-
-
void Calc::Prn()
-
{
-
cout<<" "<<a<<"\t"<<b<<"\t"<<c<<endl;
-
}
-
-
class Add:public Calc
-
{
-
public:
-
Add(int new_A, int new_B);
-
Add();
-
~Add();
-
void Sum();
-
void Prn();
-
};
-
-
Add::Add() :Calc()
-
{
-
cout<<" [Add class 생성자 실행]"<<endl;
-
}
-
-
Add::Add(int new_A, int new_B) :Calc(new_A,new_B)
-
{
-
cout<<" [Add class 생성자 실행]"<<endl;
-
}
-
-
Add::~Add()
-
{
-
cout<<" [Add class 소멸자 실행]"<<endl;
-
}
-
-
void Add::Sum()
-
{
-
c=a+b;
-
}
-
-
void Add::Prn()
-
{
-
cout<<" "<<a<<" + "<<b<<" = "<<c<<endl;
-
}
-
-
class Mul:public Calc
-
{
-
public:
-
Mul(int new_A, int new_B);
-
Mul();
-
~Mul();
-
void Gob();
-
void Prn();
-
};
-
-
Mul::Mul() :Calc()
-
{
-
cout<<" [Mul class 생성자 실행]"<<endl;
-
}
-
-
Mul::Mul(int new_A, int new_B) :Calc(new_A,new_B)
-
{
-
cout<<" [Mul class 생성자 실행]"<<endl;
-
}
-
-
Mul::~Mul()
-
{
-
cout<<" [Mul class 소멸자 실행]"<<endl;
-
}
-
-
void Mul::Gob()
-
{
-
c=a*b;
-
}
-
-
void Mul::Prn()
-
{
-
cout<<" "<<a<<" * "<<b<<" = "<<c<<endl;
-
}
-
-
void main()
-
{
-
Calc a;
-
cout<<" Calc a;"<<endl;
-
a.Prn();
-
-
Add b;
-
cout<<" Add b;"<<endl;
-
b.Calc::Prn();
-
b.Sum();
-
b.Prn();
-
-
Add c(5,5);
-
cout<<" Add c(5,5);"<<endl;
-
c.Calc::Prn();
-
c.Sum();
-
c.Prn();
-
-
Mul d;
-
cout<<" Mul d;"<<endl;
-
d.Calc::Prn();
-
d.Gob();
-
d.Prn();
-
-
Mul e(3,3);
-
cout<<" Mul e(3,3);"<<endl;
-
e.Calc::Prn();
-
e.Gob();
-
e.Prn();
-
-
cout<<"\n # sizeof()를 이용하여 각 클래스의 크기 출력"<<endl;
-
cout<<"\n sizeof(a) = "<<sizeof(a)<<endl;
-
cout<<" sizeof(b) = "<<sizeof(b)<<endl;
-
cout<<" sizeof(c) = "<<sizeof(b)<<endl;
-
cout<<" sizeof(d) = "<<sizeof(b)<<endl;
-
cout<<" sizeof(e) = "<<sizeof(c)<<endl<<endl;
-
}