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

Перегрузка операторов умножения и присваивания для строк. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Подсчитать колличество слов начинающихся с первой буквы первого слова http://www.cyberforum.ru/cpp-beginners/thread109897.html
Дана строка ,которая водится с клавиатуры. Подсчитать колличество слов начинающихся с первой буквы первого слова #include "stdafx.h" #include "conio.h" //для функции getch() #include "cmath"...
C++ unit-тестирование функции Заполнить массив n´m нулями и единицами «цепочкой квадратов». Размер квадрата задается. Тест: K = 4 1 1 1 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1... http://www.cyberforum.ru/cpp-beginners/thread109886.html
C++ Задать массив вещественных чисел и вставить в исходный массив число
вот такая программка Задать массив вещественных чисел с помощью датчика случайных чисел. Вставить в исходный массив число. С клавиатуры ввести само число и номер элемента, после которого...
C++ [C++] Купюры
Вариант 13. 1.Покупатель должен заплатить в кассу S р.У него имеются 1, 5, ,10, 50, 100, 500, 1000 и 10000р.Сколько купюр разного достоинства отдаст покупатель, если он начинает платить с самых...
C++ Определить стоимость приобретенных клиентом путевок, если известна цена одной путевки и количество приобретенных путевок http://www.cyberforum.ru/cpp-beginners/thread109872.html
Туристическая фирма предлагает снижение цен при покупке нескольких одинаковых путевок. Так, при покупке 4 путевок - скидка составляет 10% их общей стоимости, при покупке от 5 до 10 путевок - скидка...
C++ функции,указатели и динамическое выделение памяти Привет всем.Помогите пожалуйста с программой.Я в принципе её решил, но её нужно правильно даже не оформить, а использовать заданные приёмы, в данном случаи функции,указатели и динамическое выделение... подробнее

Показать сообщение отдельно
yorick
0 / 0 / 0
Регистрация: 28.03.2010
Сообщений: 9
31.03.2010, 17:17  [ТС]
Вот такой код сейчас. Выбивает ошибку, когда инициализирую объект L3.

illegal, left operand has type Row *
illegal, right operand has type Row*

Помогите исправить.

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
105
#include "stdafx.h"
#include "row.h"
#include <iostream>
#include <string>
using namespace std;
const int n = 2;
 
class Row
{
    private:
        char *data;
        
    public:
        Row();
        Row(char* v);
        Row(Row &);
        
        Row* operator*(Row *c);
        Row* operator+(Row *c);
        Row* operator=(Row *h);
 
        int Dimension();
        void Out();
};
/**************************/
Row::Row()
{
    data = NULL;
}
 
Row::Row(char* v)
{
    data = v;
}
 
Row::Row(Row &copy)
{
    data = copy.data;
}
 
int Row::Dimension()
{
    int res0 = strlen(data);
    return res0;
}
 
void Row::Out()
{
    cout << "stroka: " << data << endl;
}
 
Row* Row::operator*(Row *c)
{   
    char *tmp = new char[strlen(data)];
    tmp = data;
    
    int len = strlen(data);
    for(int i = 0; i < len; i++)
    {
        for(int j = 0; j < n; j++)
        {
            tmp[i*n*j] = data[j];
        }
    }
    
    Row *res = new Row(tmp);
    return res;
}
 
Row* Row::operator+(Row *c)
{
    int len = strlen(data);
    char *tmp = new char[len+1];
    strcpy(tmp,data);
    strcat(tmp,c->data);
 
    Row *res1 = new Row(tmp);
    return res1;
}
 
Row* Row::operator=(Row *h)
{
    Row* res3 = new Row();
    res3 = h;
    return res3;
}
 
#include "stdafx.h"
#include "row.h"
#include <iostream>
#include <string>
/**********************/
void main()
{
    Row* L3 = new Row("abc");
    Row* L2(L3);
 
    Row L1 = (L3*L3) + L2;
 
    L3->Out();
    cout << "Dlinna L3: " << L2->Dimension() << endl;
 
    L1.Out();
    cout << "Dlinna L1: " << L1.Dimension() << endl;    
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru