Помогите пожалуйста! Нужно написать прогу на С++: базовый класс "строки" с виртуальной функцией сортировки строки с выводом результата. Производный класс "Большие буквы" с вирт. функцией сортировки по возрастанию, и произв. класс "Маленькие буквы" с вирт. функцией сортировки по убыванию. Нужно использовать полиморфизм. Так, как я пробовал, не получается, файл компилируется но на этапе выполнения выдаёт исключительную ситуацию:
#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;
}
RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.
Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.
Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.