Создать иерархию классов представляющих простое наследование. Базовый класс – строка символов (char *). Производный класс – методы, работающие с данными базового класса. Реализовать в производном классе метод – поиска и удаления самого короткого слова в строке базового класса
Где мне нужно искать и удалять слово? Я реализовал наследование, создается класс на основе базового. Я инициализировал базовый и производный. Теперь где мне нужно искать и удалять слово? В производном, в переменной производного, или в производном, в переменной базового? В задании написано: "в строке базового класса", мне нужно из производного произвести поиск и удаление в базовом, или это означает что я унаследовал переменную базового и теперь в производном должен это сделать в переменной производного?
#include <iostream>
#include <stdio.h>
#include <cstring>
using namespace std;
class FirstClass {
protected:
char* str_value;
public:
//FirstClass() {}
FirstClass(const char* value = ""):str_value(0) {
set(value);
}
FirstClass(const FirstClass &obj):str_value(0) {
set(obj.str_value);
};
~FirstClass() {delete[] str_value;}
void set(const char* value) {
delete[] str_value;
str_value = new char[strlen(value)+1];
strcpy(str_value, value);
}
const char* get() const {
return str_value;
}
};
class SecondClass : public FirstClass {
public:
SecondClass(const char* str_value = "") : FirstClass (str_value) {}
void findShortestWord()
{
str_value = "kokoko";
}
};
int main() {
FirstClass F_object("aaaaaaaaaa");
printf("\n%s", F_object.get());
F_object.set("bbbbbbbbbb");
printf("\n%s", F_object.get());
FirstClass F_object2 = F_object;
SecondClass S_object();
printf("\n%s", F_object.get());
return 0;
}
Теперь создаете метод
class SecondClass : public FirstClass
{
public:
SecondClass(const char* str_value = "") : FirstClass (str_value) {}
void findShortestWord()
{
//здесь работаем с str_value
}
};
И работаете на прямую с полем str_value
.
Но это не очень хорошо. Лучше скрыть это поле в private
и реализовать в базовом классе простейшие операции, например доступ по индексу, и так далее. А уже в производном классе можно реализовать более специфическую логику вроде поиска и удаления самого короткого слова. И методы производного класса будут использовать только функции базового.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Нужно написать контакт лист для мессенджераДля этого пытаюсь правильно все спроектировать для удобной работы и простого расширения
I'm trying to compile a program, on windows with cmake, and get qt linker errors
Допустим, есть определённый набор файлов, от маленьких до больших (несколько ГБ)И есть много клиентов, у которых установлена наша программа...
Как изменить язык программы используя стандартные средства локализацииСоздал ресурс MyForm