0 / 0 / 0
Регистрация: 25.04.2014
Сообщений: 13
1

Перегрузка операций

25.04.2014, 11:11. Показов 469. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Опишите пожалуйста строки(их действие и роль в программе);

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
#include <iostream>
#include <cstring>
#include <fstream>
using namespace std;
 
class String{
private:
    char *m_Str; // указатель на строку с нулём на коце
    int L; // указатель на размер строки
    void New( const char *str ); // выделение памяти
    void Del(); // удаление памяти
 
public:
    String(); // конструктор по умолчанию
    explicit String(const String &str); // конструктор копирования
    String( const char * str ); // дополнительный конструктор
    ~String(); // деструктор
    void Set();
    void Print();
    void ofile();
    String & operator=( const String & str );
};
 
void String::New( const char *str ){
    int size = strlen(str);
    m_Str = new char[size+1]; // массив для строки символов
    L = size; // длинна строки
    strcpy( m_Str, str ); // копируем строку
}
void String::Del(){
    delete [] m_Str;
  ;
}
 
String::String(){ New("\0"); }
String::String(const char *str){ New(str); }
String::String(const String &str){ New(str.m_Str); }
String::~String(){ Del(); }
 
void String::Print(){
  cout << m_Str << '\n';
}
void String::Set(){
    Del();
    char tmp[1000];
    cin.getline( tmp, 1000 );
    cin.sync();
    New(tmp); 
}
void String::ofile(){
  ofstream file;
  file.open("text.txt",ios::app);
  file<<m_Str<<endl;
  file.close();
}
String & String::operator =(const String &str){
    int j=0;
    Del();
    char *tmp=new char[str.L];
    if(str.L%2==0&&str.L>5){       //проверка условия четности
      for (int i=2; i<str.L-2;i++){
        tmp[j]=str.m_Str[i];
        j++ ;
      }
      tmp[j]='\0';
      New(tmp);
    }
    else
      New("Ne 4etnoe ili malenkaya stroka");
    delete [] tmp;
    return *this;
};
 
 
int main(){
    String s1, s2;
    s1.Set();
    s1.ofile();
    s2 = s1; // выполнение задания
    s2.Print();
    s2.ofile();
    getchar(); // пауза
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.04.2014, 11:11
Ответы с готовыми решениями:

перегрузка операций
Обычным методом задача решена, помогите пожалуйста сделать перегрузку операций Условие: Указанные...

ПЕРЕГРУЗКА ОПЕРАЦИЙ
Всем добрый день.Нужна помощь по перегрузкам операций.Написать программу.Кто сможет помочь,буду...

Перегрузка операций С++
Подскажете пожалуйста, как буквам &quot;А&quot; и &quot;В&quot; присвоить номера 10 и 11 вместо 17 и 18. // пр4.cpp:...

Перегрузка операций += и -=
Объясните, пожалуйста, как правильно выполнить перегрузку операций += и -=? При такой реализации...

0
25.04.2014, 11:11
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.04.2014, 11:11
Помогаю со студенческими работами здесь

Перегрузка операций
C++ ругается когда я пытаюсь сделать след-ю перегрузку операций. У меня трехмерный массив matrix и...

Перегрузка операций.
Предусмотреть ввод исходных данных с клавиатуры, файла и используя датчик случайных чисел. Написать...

Перегрузка операций
Уважаемые программисты! Помогите новичку! Мне нужно написать программу, в которой реализуется...

Перегрузка операций
Добрый день форумчане, помогите решить задачку Перегрузить 8 операторов для класса Вот пример...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru