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

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

Войти
Регистрация
Восстановить пароль
 
Yuri Matveichuk
0 / 0 / 0
Регистрация: 25.04.2014
Сообщений: 13
#1

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

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

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

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;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.04.2014, 11:11     Перегрузка операций
Посмотрите здесь:

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

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

Перегрузка операций '<<' и '>>' - C++
Добрый вечер всем:) У меня вот такое задание: Создайте класс, реализующий однонаправленную очередь. В интерфейс класса должны входить...

Перегрузка операций - C++
Начал изучать перегрузку операций, и чего-то вроде не понял или что... Вообщем не могу понять чего не компилит. Проект и ошибка в...

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

Перегрузка операций - C++
#include &lt;iostream&gt; using namespace std; class chislo { public: chislo(); chislo(int a,int b); chislo(const chislo&amp;); ...

ПЕРЕГРУЗКА ОПЕРАЦИЙ - C++
Не знаю как делать задания( Прошу помощи 1) Ввести класс для работы с объектом «полином». Реализовать операции: a. сложение двух...

Перегрузка операций - C++
Всем привет! Помогите пожалуйста с перегрузкой операций. У меня есть вот 4-ая лаба #include &lt;iostream.h&gt; #include &lt;conio.h&gt; ...

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

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


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

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

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