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

Не выходит перегрузка операторов - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Перевод из int в char* внутри функции работает, а если вернуть строку то нет http://www.cyberforum.ru/cpp-beginners/thread1051412.html
Надо перевесит int в char* в методе класса, и вернуть char*. Перепробовал кучу всего результат 1 и тот же. boss.cpp char* boss::getitem() { int radix = 10; //система счисления char buffer; //результат char *p; //указатель на результат p = itoa(podc,buffer,radix); //если тут будет cout все будет норм
C++ Расположить в порядке возрастания методом подсчета Помогите написать код. Дано двумерный массив целых чисел. Все элементы массива, при делении на 4 дают в остатке 2, расположить в порядке возрастания методом подсчета. http://www.cyberforum.ru/cpp-beginners/thread1051406.html
Списки C++
#include <iostream.h> #include <stdio.h> #include <string.h> #include <conio.h> #include <stdlib.h> #include <iomanip.h> /*==========DANNIE PO AVTO_BAZE============*/
Как представить число в виде выражения с минимальным количеством символов? C++
Ограничение по времени: 1 секунда Ограничение по памяти: 64 MB Учительница математики попросила школьников составить арифметическое выражение так, чтобы его значение было равно данному числу N, и записать его в тетради. В выражении могут быть использованы натуральные числа, не превосходящие K, операции сложения и умножения, а также скобки. Петя очень не любит писать, и хочет придумать...
C++ подчеркивает запятую после 50, что это может быть? http://www.cyberforum.ru/cpp-beginners/thread1051365.html
#include <stdio.h> #include <stdlib.h> #include <math.h> #include <conio.h> #include "graphics.h" void main(void) { int rectangle(50,100,-50,-100); }
C++ Реализовать класс - "Троичный вектор" Здравствуйте форумчане! Вот задали задачу: Реализовать класс «Троичный вектор» – Tvector размерности n. Компоненты вектора принимают значения из множества {0,1, X}. Два троичных вектора tk = (t1^k,...,tn^k) и (t1^l,...,tn^l) называются ортогональными, если существует такое i, что ti^k, ti^l ∈ {0,1} ti^k ≠ ti^l. Операция пересечения не ортогональных векторов выполняется покомпонентно по... подробнее

Показать сообщение отдельно
HUSTLIN
1 / 1 / 1
Регистрация: 19.10.2013
Сообщений: 75
22.12.2013, 00:05     Не выходит перегрузка операторов
Класс матрица, перегруженные др. операции. Ошибок не выдает. Через дебаг проверил, не заносятся значения в массивы. Может я что-то с конструкторами намудрил, или еще с чем-то. Прошу помочь, лабы сдавать срочно нужно)
И еще, как сделать оператор присваивания, а то я постоянно натыкаюсь на non-static member.

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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
#include <iostream>
#include <stdio.h>
#include <locale>
 
using namespace std;
 
class CMatrix
{
private:
    int Matr[8][8];
    int rows, cells;
    
public:     
    CMatrix();
    CMatrix(int n, int m);
    CMatrix Input(int i, int j);
    void SetRows(int r){rows = r;}
    void SetCells(int c){cells = c;}
    void SetElement(int i, int j);
    int GetRows(){return rows;}
    int GetCells(){return cells;}
    int GetElement(int i, int j){return Matr[i][j];}
 
    //CMatrix & operator = (const CMatrix &a);
    friend CMatrix operator + (CMatrix &A, CMatrix &B);
    friend CMatrix operator * (CMatrix &A, CMatrix &B);
    friend CMatrix transp(CMatrix &A);
    void Show(CMatrix &temp);
    
};
 
CMatrix ::CMatrix()
{
    for(int i = 0; i < 5; i++)
        for(int j = 0; j < 5; j++)
            Matr[i][j] = 0;
}
 
CMatrix :: CMatrix(int n, int m)
{
    rows = n; cells = m;
    for(int i = 0; i < rows; i++)
        for(int j = 0; j < cells; j++)
            Matr[i][j] = 0;
}
 
CMatrix CMatrix::Input(int i, int j)
{   
    CMatrix temp(this->rows = i,this->cells = j);   
    printf("\nВведите %d элементов\n", i*j);
    for(int i = 0; i < temp.rows; i++)
        for(int j = 0; j < temp.cells; j++)
            cin >> temp.Matr[i][j];
    return temp;
}
 
void Show(CMatrix &temp)
    {
        for(int i = 0; i < temp.GetRows(); i++)
        {
            cout << endl;
            for(int j = 0; j < temp.GetCells(); j++)
            {
                cout << temp.GetElement(i,j) << " ";
            }
        }
    }
 
CMatrix operator + (CMatrix &A, CMatrix &B)
    {   
        CMatrix temp(A.rows, B.cells);
        if(A.rows == B.cells && A.rows == B.rows)
        {
            for(int i = 0; i < A.rows; i++)
                for(int j = 0; j < B.cells; j++)
                    temp.Matr[i][j] = A.Matr[i][j] + B.Matr[i][j];
        }
        else
            cout << "\n Размеры матриц несовпадают!\n";
        return temp;
    }
 
CMatrix operator * (CMatrix &A, CMatrix &B)
    {
        CMatrix temp(A.rows, B.cells);
        if(A.rows == B.cells)
        {               
            for(int i = 0; i < A.rows; i++)
                for(int j = 0; j < B.cells; j++)
                    temp.Matr[i][j] = A.Matr[i][j] + B.Matr[j][i];  
        }
        else
            cout << "\n Размеры матриц несовпадают!\n";
        return temp;
    }
 
CMatrix transp(CMatrix &A)
{
    CMatrix temp(A.rows, A.cells);
    for(int i = 0; i < A.rows; i++)
            for(int j = 0; j < A.cells; j++)
                temp.Matr[i][j] = A.Matr[j][i];
    return temp;
}
 
int main()
{
    setlocale(LC_ALL, "Rus");   
    int n, m;
    CMatrix A, B;
    CMatrix Plus, Multiply, Trans, Print;
    cout << "Введите размер первой матрицы (NxM): ";
    scanf_s("%d%*c%d", &n, &m);
    A.Input(n, m);
    cout << "Введите размер второй матрицы (NxM): ";
    scanf_s("%d%*c%d", &n, &m);
    B.Input(n, m);
    Plus = A + B;
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 07:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru