Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.12.2009, 23:15   #1
adidas
 
Регистрация: 29.05.2009
Сообщений: 3
По умолчанию Создать перегрузку функций

Опишите класс String для строк, содержащий символьное поле со строкой, опишите конструктор по умолчанию, задающий пустую строку, конструктор с параметром, задающий строку, равной параметру. Опишите в классе метод show() для вывода строки на экран. Для класса опишите функцию объединения двух строк, которая заносит результат в текущий объект
void con(String x, String y);
Для обращения к полям текущего объекта используйте указатель this, например обращение к полю a текущего класса выглядит так: this->a;
Реализуйте перегрузку метода con для строки и символа, который добавляет символ к строке, для одного объекта String и добавляя к текущему, и для одного символа, добавляя к текущему объекту. Создайте программу, тестирующую все варианты метода con.

Помогите создать перегрузку для этого кода

вот код
Код:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <iostream.h>
#include <string.h>

class String
{
private:

char *t;
public:
char *stroka;
String()
   {stroka=NULL;}
String (char *t)
{stroka=t;}

void show()
{
cout<<stroka<<endl;


}
void con(String x)
{  strcat(this->stroka,x.stroka);}
};

main()
{
String kv("masha");
String kv1("dura");
cout<<"stroka 1"<<endl;
kv.show();
cout<<"stroka 2"<<endl;
kv1.show();
kv.con(kv1);
cout<<" obedinennaay stroka: ";
kv.show();
getch();
return 0;
}

Последний раз редактировалось adidas; 14.12.2009 в 23:18.
adidas вне форума Ответить с цитированием
Старый 15.12.2009, 20:36   #2
RoS
Форумчанин
 
Аватар для RoS
 
Регистрация: 13.12.2009
Сообщений: 272
По умолчанию

String (char *t)
{stroka=t;}

если конструктор принимает параметр char * t, то совсем не обязательно это самое
t включать в класс, т.е. можешь удалить char * t из класса - раз

Второе и очень ваное замечание - когда ты пишешь stroka = t;
то ты на самом деле приравниваешь указатели, т.е. t и stroka будут
указывать в одну область памяти, и если там (в этой области) что - то изменить через t,
то значение в stroka тоже изменится....
КОгда ты реализовываешь класс String самопально,
пользуйся функциями для работы со строками, такими как
strcpy и тд....
Для начала хватит
Если я помог вам - порадуйте меня, нажмите на весы слева
RoS вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Аналоги функций iiunbreakableii Общие вопросы C/C++ 8 26.06.2009 12:14
Построение графиков функций С++ (методы аппроксимации функций) amdbodia Общие вопросы C/C++ 0 24.05.2009 15:28
использование функций в качестве параметров других функций mono Помощь студентам 0 20.04.2009 18:25
Вопрос про перегрузку AskaL Общие вопросы C/C++ 1 30.12.2008 16:49
Оптимизировать перегрузку операторов Иллидан Общие вопросы C/C++ 14 24.04.2008 11:18