сортировка символов строки c++, виртуальные функции

Жалоба
Вопрос

Помогите пожалуйста! Нужно написать прогу на С++: базовый класс "строки" с виртуальной функцией сортировки строки с выводом результата. Производный класс "Большие буквы" с вирт. функцией сортировки по возрастанию, и произв. класс "Маленькие буквы" с вирт. функцией сортировки по убыванию. Нужно использовать полиморфизм. Так, как я пробовал, не получается, файл компилируется но на этапе выполнения выдаёт исключительную ситуацию:
#include "stdafx.h"
#include "math.h"
#include <iostream>
#include <string.h>

class Line {
public: Line() {}
virtual void sort(char *S)
{
int n=strlen(S);
char t;
for (int i=0; i<n; i++) {
int j=i+1;
if (S[i]!=S[j])
{
t=S[i];
S[i]=S[j];
S[j]=t;}
}
printf(S);
}
};

class CapitalLet: public Line {
public: CapitalLet (){}
char* S;
virtual void sort(char *S)
{
char t;
int n=strlen(S);
for (int i=0; i<n; i++) {
int j=i+1;
if (S[i]<S[j])
{
t=S[i];
S[i]=S[j];
S[j]=t;
}
}
printf(S);
}
};

class SmallLet: public Line {
public: SmallLet(){}
char* S;
virtual void sort(char *S)
{
char t;
int n=strlen(S);
for (int i=0; i<n; i++) {
int j=i+1;
if (S[i]>S[j])
{
t=S[i];
S[i]=S[j];
S[j]=t;
}
}
printf(S);
}
};


int _tmain(int argc, _TCHAR* argv[])
{
Line ob;
Line *p;
CapitalLet myC;
myC.S="fghjhgfvbnmkkabghbjn";
SmallLet myS;
myS.S="jnhgvcfdxszdfghjklbh";
p=&ob;
p->sort(myC.S);
p=&myS;
p->sort(myS.S);

return 0;
}

В процессе 1
обучение 4 года назад 1 Ответов 258 Просмотров 0

Ответов ( 1 )

    0
    6 лет назад
    Ответить

    Молодой человек... Я бы ради прикола мог бы помочь, но уловите правило ! НИКОГДА НЕ ВЫКИДЫВАЙ ТАК КОД! ОТСТУПОВ НЕТ ПОДСВЕТКИ НЕТ И Т.Д. ! Залил бы лучше на файло обменник .cpp файл и дал бы ссылку... А так глянул на эту кашу и в топку все...

Ваш ответ