바이링 님이 쓰신 글 :
: 클래스 power, power1, power2 이 세가지 클래스를 하나의 power이라는 클래스로 합치는 방법을 알고싶습니다..ㅠㅠ
: 저 혼자 합쳐보려고 했는데요; 클래스 power 클래스 하나로는 세개의 생성자가 한번에 넣으면 에러가 뜨더라구요..ㅠㅠ
: power은 이항연산자이구요 power1은 단항연산자이구 power2는 프렌드 연산자에요 세개 클래스가 아닌 하나의 power이라는 클래스에 세개의 클래스의 생성자를 모두 한번에 합쳐서 넣을수 있는 방법 알려주세요 !!!!!!!!
:
: class power{
: int xxx, yyy;
: public:
: power() { xxx=yyy=0;}
: power(int xx, int yy) {xxx=xx, yyy=yy;}
: void get_xxyy(int &xx, int&yy) { xx= xxx; yy= yyy;}
: power operator + (power pp);
: };
:
: power power::operator +(power pp)
: {
: power ttt;
: ttt.xxx = xxx + pp.xxx;
: ttt.yyy = yyy + pp.yyy;
: return ttt;
: }
:
: class power1{
: int zzz;
: public:
: power1(int nnn) { zzz= nnn;}
: power1() { zzz = 0;}
: int val(){return zzz; }
: void operator ++() {++zzz;}
: void operator --() {--zzz;}
: };
:
: class power2{
: double re1, re2;
: public:
: power2(double rr, double ee) { re1=rr; re2=ee;}
: power2() { re1 = 0; re2 = 0;}
: friend power2 operator +(power2, power2);
: friend power2 operator -(power2, power2);
: void operator()();
: };
:
: power2 operator +(power2 g1, power2 g2)
: {
: power2 ttmmpp;
:
: ttmmpp.re1 = g1.re1 + g2.re1;
: ttmmpp.re2 = g1.re2 + g2.re2;
: return ttmmpp;
: }
:
: power2 operator -(power2 g1, power2 g2)
: {
: power2 ttmmpp;
:
: ttmmpp.re1 = g1.re1 - g2.re1;
: ttmmpp.re2 = g1.re2 - g2.re2;
: return ttmmpp;
: }
:
: void power2::operator ()()
: {
: cout << re1 << re2 << endl;
: };
:
상속을 해버리면 안되요?
class power{
int xxx, yyy;
public:
power() { xxx=yyy=0;}
power(int xx, int yy) {xxx=xx, yyy=yy;}
void get_xxyy(int &xx, int&yy) { xx= xxx; yy= yyy;}
power operator + (power pp);
};
power power::operator +(power pp)
{
power ttt;
ttt.xxx = xxx + pp.xxx;
ttt.yyy = yyy + pp.yyy;
return ttt;
}
class power1 : public power{ //여기처럼 1차상속
int zzz;
public:
power1(int nnn) { zzz= nnn;}
power1() { zzz = 0;}
int val(){return zzz; }
void operator ++() {++zzz;}
void operator --() {--zzz;}
};
class power2 : public power1{ << //여기처럼 2차상속
double re1, re2;
public:
power2(double rr, double ee) { re1=rr; re2=ee;}
power2() { re1 = 0; re2 = 0;}
friend power2 operator +(power2, power2);
friend power2 operator -(power2, power2);
void operator()();
};
power2 operator +(power2 g1, power2 g2)
{
power2 ttmmpp;
ttmmpp.re1 = g1.re1 + g2.re1;
ttmmpp.re2 = g1.re2 + g2.re2;
return ttmmpp;
}
power2 operator -(power2 g1, power2 g2)
{
power2 ttmmpp;
ttmmpp.re1 = g1.re1 - g2.re1;
ttmmpp.re2 = g1.re2 - g2.re2;
return ttmmpp;
}
void power2::operator ()()
{
cout << re1 << re2 << endl;
};
power2 가 마지막상속받은 클래스이고 public 부분은 오픈되어있으나
함수사용은 용이할거구요 머 클래스생성할때 메소드나 설정하면 될거같은데요
3개의클래스를 하나로 만들어라 라고한다면 상속뿐이없을텐데요
아니면 클래스안에 종속시키는것도있고