Turbo-C
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
터보-C 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
Lua 게시판
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C/C++ Q/A
[6913] Re:Re:c++ 생성자 질문올려봅니다...
바이링 [] 1599 읽음    2014-11-16 14:10
aaaa 님이 쓰신 글 :
: 바이링 님이 쓰신 글 :
: : 클래스 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개의클래스를 하나로 만들어라 라고한다면 상속뿐이없을텐데요
: 아니면 클래스안에 종속시키는것도있고

---------------------------------
그렇다면 종속시키면 어떤식으로 위의 프로그램이 바뀔지요 깔끔하게 power에 나머지 power1,power2가 모두 들어가있게끔 하고 싶은데
위의 상속은 결국은 프로그램상 power1,power2 클래스가 존재해야되잖아요? 존재하지 않게끔 하나의 클래스에 모두 넣으려면 어떻게 하나요 ?? 종속을 해야할것같은데...

+ -

관련 글 리스트
6907 c++ 생성자 질문올려봅니다... 바이링 1870 2014/11/13
6908     Re:c++ 생성자 질문올려봅니다... aaaa 1618 2014/11/13
6913         Re:Re:c++ 생성자 질문올려봅니다... 바이링 1599 2014/11/16
6917             Re:Re:Re:c++ 생성자 질문올려봅니다... ㅁㅁㅁㅁ 1970 2014/11/23
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.