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

C/C++ Q/A
[1083] Re:도와주세요.. c++ 로 퀵 정렬을 구현한건데..
이용윤 [] 1731 읽음    2002-09-04 02:22
정렬 님이 쓰신 글 :
: 우선 소스 부터 올리면..
:
: #include<iostream>
: using namespace std;
:
: const int MAX=10;
:
: class quick{
:
:     int data[MAX];
:
: public:
:
:          void show();
:     void input();
:     void sort(int data[],int n);
: };
:
:
: void quick::show(){
:
:     cout<<"\n---- data ----\n";
:     for(int i=0;i<MAX;i++)
:         cout<<data[i]<<" ";
: }
:
: void quick::input(){
:
:     for(int i=0;i<MAX;i++)
:     {
:         cout<<"input "<<i+1<<" sd data :";
:         cin>>data[i];
:     }
: }
:
: void quick::sort(int data[],int n){
:
:     int v,t;
:     int i,j;
:
:     if(n>1)
:     {
:         v=data[n-1] ;     
:                   i=-1;                     
:                   j=n-1;           
:
:         while(1)
:         {
:             while(data[++i]<v)
:             while(data[--j]>v)
:             if (i>j) break;      
:                             t=data[i];
:             data[i]=data[j];
:             data[j]=t;
:         }
:
:         t=data[i];
:         data[i]=data[n-1];
:         data[n-1]=t;
:         sort(data,i);
:         sort(data+i,n-i-1);
:     }
: }
:
:        
: int main(){
:
:     quick no1;
:
:     no1.input();
:     no1.show();
:     no1.sort(data,MAX);
:     no1.show();
:
:     return 0;
: }
:
:
: 이런데요... 당연한 이야기이겠지만... 컴파일시 애러가 납니다. 애러가 나는 부분은
:
: no1.sort(data,MAX) 이부분에서 애러가 나는데요.. data 배열이 클래스 내에 정의가 되 있고
:
: main() 함수에는 없기때문에 data 가 정의 되지 않았다는 애러가 나옵니다.
:
: 그래서  c++ 에서 매서드 함수를 이용하여 재귀함수를 어떻게 사용해야하는지 잘 모르겠습니다.
:
: 꼭 도움 부탁드립니다.
:
:
  Class로 구현하신다고 보면 아마도 조금은 더 생각을 해 보셔야 할 듯..
Class는 우선 자신의 Data를 캡슐화 하는데 있으니까 Data를 외부에서 가져올때
필요한 Interface를 만들어야 겠죠..

  아마도 sortClass.input.Add( "input" )  이런 식으로 말이죠.
  아니면 넣을때 주소를 넣는다던지 하는 식으로 말이죠.
  data 자체까지 캡슐화 하려면 이런 식으로 해야 할 것입니다.

그러니까 sortClass에 Data를 차근 차근 넣던지 배열의 주소를 넣어서
Data를 Class에 넣으시구요 sortClass에 sort 메소드를 만든 다음에
출력은 반대로 Data를 차근 차근 빼던지 아니면 주소를 반환하던지
그런식으로 코딩 하셔야 할 겁니다.

+ -

관련 글 리스트
1078 도와주세요.. c++ 로 퀵 정렬을 구현한건데.. 정렬 1597 2002/09/02
3515     Re:도와주세요.. c++ 로 퀵 정렬을 구현한건데.. Lee, PhilHo@Xius.NET 1571 2002/09/04
1083     Re:도와주세요.. c++ 로 퀵 정렬을 구현한건데.. 이용윤 1731 2002/09/04
1080     main()함수를 잘보세요 정성훈.해미 1411 2002/09/03
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.