Albor писал(а): Дополни сам проверку индексов, ну и тем чего не хватает.
Код: Выделить всё
int main()
{
StringArray sa(2);//создаём обект "Массив строк", который может содержать две строки
sa.SetAt(0,"Hello, ");// добавляем одну строку
sa.SetAt(1,"World!");// добавляем вторую строку
sa.SetAt(2,"Crush!"); // будет авария, т.к. нет проверки валидности индекса в методе SetAt()
cout<<sa.GetAt(0)<<sa.GetAt(1)<<endl;
return 0;
}
Проверить индексы не так уж и сложно. Можно изменить ф-цию GetAt(), например, так:
Код: Выделить всё
const char * GetAt(unsigned int index) const // получить строку по индексу
{
if(index<m_size) return m_pString[index];//если индекс в пределах от 0 до m_size-1 включительно, то всё в порядке
return "Bad Index";// иначе сработает эта строка и на выходе ф-ции появится сообщение об ошибке
}
Данный вариант не лучшее решение (лучше бросить исключение, а то вдруг в массиве строк будет храниться строка "Bad Index", разбирайся тогда - была ошибка или нет

), но для понимания вопроса пойдёт.
"Сцепку" массивов можно сделать, добавив, для начала, в класс метод с прототипом void Merge(const StringArray & sa); где и изменить размер и содержание вызывающего данный метод объекта. Потом можно добавить operator +=() и т. д. Добавляя методы мы расширяем функционал класса. Дальше шевели мозгами сам. Ты создал тему в разделе С++, а не "Решите мне задачку". Подсказку ты получил, полное решение за тобой!