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

C/C++ Q/A
[6917] Re:Re:Re:c++ 생성자 질문올려봅니다...
ㅁㅁㅁㅁ [] 2077 읽음    2014-11-23 17:55
바이링 님이 쓰신 글 :
: 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 클래스가 존재해야되잖아요? 존재하지 않게끔 하나의 클래스에 모두 넣으려면 어떻게 하나요 ?? 종속을 해야할것같은데...


그냥 순서만 바꾸세요 제가답변한거에 순서는 POWER3 이마지막에 최종적으로 쓸 클래스에요
그렇기때문에 반대로  power3을 poer2에 상속시키고 power2를 power에 상속시키면됩니다
그러면 power 클래스만 사용하시면 2 ,3 클래스에있는 함수 다사용도되고요 하나로 합처집니다
클래스 사용하시지 public부분에 함수만 사용가능한것도아실테고

순서만 바꿔주시면됩니다 결론은요

+ -

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