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

Перегрузка оператора - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Ошибка компилятора http://www.cyberforum.ru/cpp-beginners/thread734220.html
Не работает cout и cin Visual Studio 2008 Помогите пожалуста кто может:wall::wall::wall:
C++ Написать программу, в которой создаются динамические структуры, и выполнить их обработку... Написать программу, в которой создаются динамические структуры, и выполнить их обработку в соответствии со своим вариантом. Для каждого вариант разработать следующие функции: 1. Создание списка.... http://www.cyberforum.ru/cpp-beginners/thread734206.html
Работа с матрицами C++
Помогите пожалуйста, как написать программу что бы она земеняла j-столбец в одном текстовом, файле на столбец взятый из другого. Пусть в текстовом файле записаны целые числа разделенные пробелами....
C++ Вывод дерева в файл
Здравствуйте, кто знает примеры реализации вывода дерева в файл ( может с помощью ASCII символов?). Буду благодарен за предоставление информации.
C++ Присвоение массиву значение массива http://www.cyberforum.ru/cpp-beginners/thread734195.html
Здравствуйте, помагите пожалуйсто, как присвоеть масиву значения масива. Ну вернее я хочю чтобы в масиве был бы масив. Ну или может ктонибудь знает альтернативный способ? Мне нужно создать...
C++ Напечатать в алфавитном порядке все гласные буквы, которые входят в текст по одному разу... Друзья, помогите решить следующую задачу: Дан произвольный текст. Напечатать в алфавитном порядке все гласные буквы, которые входят в этот текст по одному разу и согласные которые не входят в этот... подробнее

Показать сообщение отдельно
OdessaNA
19 / 19 / 0
Регистрация: 10.01.2011
Сообщений: 241

Перегрузка оператора - C++

16.12.2012, 19:17. Просмотров 314. Ответов 6
Метки (Все метки)

Здравствуйте, друзья.
Помогите пожалуйста найти ошибку, вернее я знаю где, но пока не понимаю как её исправить:
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
//Добавить в строковый класс функцию, которая создает строку, содержащую пересечение двух строк, 
//то есть общие символы для двух строк. Например, результатом пересечения строк "sdqcg" "rgfas34" будет строка "sg". 
//Для реализации функции перегрузить оператор * (бинарное умножение). 
 
#include <iostream>;
#include <string.h>
#include <conio.h>
using namespace std;
 
class String
{
    char *str;
    int len;
public:
    String();
    String(char *s);
    String(const String&);
    ~String();
    String operator*(const String&);
    void Show();
};
String :: String ()
{
    str = new char[];
    len = 0;
    str[0] = '\0';
}
 
String :: String (char *s)
{
    len = strlen(s);
    str = new char [len + 1];
    strcpy(str, s);
}
 
String :: String(const String& obj)
{
    len = obj.len;
    str = new char [len + 1];
    strcpy(str, obj.str);
}
 
String :: ~String()
{
    delete [] str;
}
 
void String :: Show()
{
    puts(str);
    cout << endl;
}
 
String String :: operator*(const String& obj)
{
    String temp;
 
    int *array = new int[len];
    int meter = 0;
 
    for(int i = 0; i < len; ++i)
    {
        for(int j = 0; j < obj.len; ++j)
        {
            if(str[i] == obj.str[j])
            {
                array[meter++] = i;
                break;
            }
        }
    }
 
    int meter2 = 0;
 
    for(int i = 0; i < meter; ++i)
    {
        temp.str[i] = str[array[i]];
    }
//вот здесь она, "гадина", и сидит!!!
    return temp;
}
 
int main(){
    
    String str1("abcdefj");
    String str2("defjhkl");
    String str3;
 
    str3 = str1 * str2;
    str3.Show();
 
    getch();
}
Спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru