다른 데이터 형식 (구조체)이 포함 된 이진 파일을 정렬하려면 Quicksort를 코딩하고 있습니다. 나는이 오류를 얻고있다함수에서 typedef를 사용하는 방법은 무엇입니까?
void quicksort(){
int izbor;
char naziv_datoteke[20];
cout << "Izaberite datoteku koju zelite sortirati: "<<endl;
cout << "1 - sifra.ind "<<endl;
cout << "2 - ime.ind "<<endl;
cout << "3 - prezime.ind "<<endl;
cin >>izbor;
switch(izbor){
case 1:strcpy(naziv_datoteke, "sifra.ind");
typedef tsifra slog;
break;
case 2:strcpy(naziv_datoteke, "ime.ind");
typedef time slog;
break;
case 3:strcpy(naziv_datoteke, "prezime.ind");
typedef tprezime slog;
break;
}
int broj_zapisa;
dat.open(naziv_datoteke, ios::in|ios::out|ios::binary);
dat.seekg(0, ios::end);
broj_zapisa=dat.tellg()/sizeof(slog);
// quicksort(0, broj_zapisa-1);
dat.close();
}
:
conflicting declaration 'typedef struct time slog'
내가 데이터 파일에 저장되는 형식 그래서 얻기 위해 나중에 사용할 수 있습니다로 강타를 정의하고 싶습니다 이것은 내가 지금까지 쓴 것입니다 그 구조체의 크기와 다른 것들은 거의 없다.
이렇게하면 C++이 작동하지 않습니다. 'typedef'는 범위에서 시작하여 그 범위를 끝낼 때까지 지속되는 별칭을 정의합니다. typedef를 "재정의 (redefine)"하지 않고, 그 시점에서 유효하게되는 실행 가능한 명령문의 일종이 아닙니다. 템플릿, 상속 또는 다양한 다른 디자인 패턴을 사용하여 수행하려는 작업의 기본 아이디어를 완성하는 데는 여러 가지 방법이 있습니다. 나는 당신이이 주제에 관한 모든 것을 배우기 위해 당신의 C++ 책을 계속 읽으면서 자신의 상황에 가장 적합한 책을 결정할 것을 제안한다. –
^그걸로, '스위치'후에 '슬로우'로 달성하고자하는 것을 보여주십시오. –