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

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

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

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

13.01.2011, 19:43. Просмотров 251. Ответов 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 секунд
правильно ли это?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.01.2011, 19:43     Сижу на лабораторной по классам
Посмотрите здесь:

C++ Помогите с лабораторной
книга по классам C++
учебник по классам C++
C++ Задача по классам.с++
C++ Хэлп по лабораторной 2
C++ Литература по классам
Задача для лабораторной C++
C++ от структур к классам
Программа по классам C++
C++ Программа по классам
Задание по лабораторной работе C++
C++ Какой день сижу, не могу понять:(

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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