Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
kniazik
0 / 0 / 0
Регистрация: 21.12.2009
Сообщений: 25
#1

Сижу на лабораторной по классам - C++

13.01.2011, 19:43. Просмотров 256. Ответов 0
Метки нет (Все метки)

Подскажите

Создать класс для работы со строками. В классе перегрузить оператор += для сложения строк. Память под строки отводить динамически. Использовать конструктор с параметрами, конструктор копирования.

Вот такая задача.
До конца лабы осталось 2 часа
есть у кого возможность помочь?

Добавлено через 33 минуты
в поисковике ничего нет
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
#include <iostream>
#include <cstring>
 
using namespace std;
 
class mass{
public:
    friend ostream &operator<<( ostream& , mass & );        //wiwod
    friend istream &operator>>( istream& , mass & );            //wwod
    mass(short size = 255); //konstructor
    mass(char* _str);           //este constructor
    ~mass();                        //deconstructor
public:     
    char* return_str();         //ucozatel na 1 simwol
    short return_size();        //wozwrat razmera masiva
public:
    void selection();               //otbor
    mass operator+(mass _str);//slogenie concat
    bool operator=(mass _str);  //prisvoenie 
private:
    //socritie dannih 
    short size;
    char* str;
};
 
//-----------------------------------//
 
mass::mass(short _size /*=255*/) : str(NULL), size(0){
    str = new char[_size+1]; //+1 dlia okonchaniya stroki
    str[0] = '\0';
    size=_size;
}
 
mass::mass(char* _str) : str(NULL), size(0){
    size=strlen(_str);
    str = new char[size+1];
    str[0]='\0';
    strcpy(str, _str);
}
 
mass::~mass(){
 
}
 
void mass::selection(){
    cout << "It's string:" << endl;
    for (unsigned short i=0; i<strlen(str); i++){
        if ( (str[i]>=' ') && (str[i]<=' ') ){
            cout << str[i];
        }
    }
    cout << endl;
    return;
}
 
char* mass::return_str(){
    return &str[0];
}
 
short mass::return_size(){
    return size;
}
 
mass mass::operator+(mass _str){
    char* sub = new char[size+_str.return_size()+1];
    sub[0]='\0';
    strcpy(sub, str);   //kopiruem stroku
    strcat(sub, _str.return_str()); //dobavliyem wtoruy
    return mass(sub);
}
 
bool mass::operator =(mass _str){
    bool flag(false);
    cout << str;
    if (size>=_str.return_size()){
        strcpy(str, _str.return_str());
        flag=true;
    }
    return flag;
}
 
ostream &operator<<( ostream & ostr , mass &_str ){
    return cout << _str.return_str();
}
 
istream &operator>>( istream & ostr , mass &_str ){
    return cin >> _str.return_str();
}
 
void main(){
    mass x(400);
    cout << "Enter the string::" << endl;
    cin >> x;
    x.selection();
    mass x2(200);
    cout << "Enter the string::" << endl;
    cin >> x2;
    x2.selection();
    cout << "Concatenate::" << endl;
    mass x3;
    x3=x+x2;
    cout << x3 << endl;
    return;
}
Добавлено через 47 секунд
правильно ли это?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.01.2011, 19:43
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сижу на лабораторной по классам (C++):

Сижу на зачете !! - C++
Народ, плиз помоите. сижу на зачете. Написать прогу котрая считывает массив целых чисел с клавиатуры, пользователь вводит значение и прога...

Какой день сижу, не могу понять:( - C++
{ссылка удалена}

Помогите с лабораторной - C++
Задание Открыть файл, содержащий 10 целых чисел, показать их в диалоге, создать новый файл, записать в него среднее арифметическое этих...

Хэлп по лабораторной 2 - C++
Я прошу прощения, понимаю что выгляжу глупо, но не мог бы кто помочь с остальными 8 вопросами - не все зарегистрированы в контакте,...

Задание по лабораторной работе - C++
Вот такое задание. Не могу понять, как именно все это организовать. В голове только вариант &quot;если др в интервале дд. мм-дд. мм, то знак...

Задача для лабораторной - C++
Помогите пожалуйста написать вот это,очень нужно!Буду очень благодарен. Узнав, что лич Сандро ушёл воевать с королём демонов,...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.01.2011, 19:43
Привет! Вот еще темы с ответами:

Вопрос по классам - C++
Есть такой код #include &lt;iostream&gt; class C1{ public: C1(){std::cout &lt;&lt;&quot; 1 is open&quot;&lt;&lt;std::endl;}; ~C1(){std::cout &lt;&lt;&quot; 1...

лабораторная по классам - C++
Доброго вечера ув. гуру. Очень прошу вас помочь написать небольшую программу, связанной с великим ООП, а конкретнее работой с классами....

от структур к классам - C++
Добрый вечер. Помогите пожалуйста разобраться в классах, только начал их изучать. Есть задание переделать структуру в класс ну и сделать...

Вопрос по классам - C++
создал конструктор, который создаёт элемент класса - массив, а вот инициализация данного массива с помощью нового конструктора не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru