Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
136 / 57 / 13
Регистрация: 04.09.2011
Сообщений: 1,956
Записей в блоге: 1
1

Сообщение об ошибке "функция-член уже определена"

21.04.2015, 12:33. Просмотров 2686. Ответов 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
#include <iostream>
using namespace std;
 
class Matrix
{
private:
    int **Array;
    int nstr, nstl;
public:
    Matrix();
    Matrix(int m, int n);
    ~Matrix();
 
    //Констроктор
    Matrix::Matrix(int m, int n)
    {
        nstr = m;
        nstl = n;
        Array = new int *[nstr];
        for (int j = 0; j<nstr; j++)
        {
            Array[j] = new int[nstl];
            for (int i = 0; i<nstl; i++)
                Array[j][i] = 0;
        }
    }
    //Деструктор 
    Matrix::~Matrix()
    {
        for (int i = 0; i<nstr; i++)
            delete[]Array;
    }
};
 
int main()
{
 
    return 0;
}
Что это за ошибки
Ошибка 2 error C2535: Matrix::~Matrix(void): функция-член уже определена или объявлена maincpp.cpp 29 1 OOP
Ошибка 1 error C2535: Matrix::Matrix(int,int): функция-член уже определена или объявлена maincpp.cpp 16 1 OOP
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.04.2015, 12:33
Ответы с готовыми решениями:

Ошибка "Функция-член уже определена или объявлена"
Здравствуйте! Делаю класс для работы с векторами (Vector3) При попытке скомпилировать почти для...

Ошибка - "Функция _main уже определена"
#include &lt;iostream&gt; #include &lt;string&gt; using namespace std; void check_weekday(string day) { if...

Ошибка "функция-член класса не может быть повторно объявлена"
В заголовочном файле прототипы расписал. При реализации методов класса Rectangle ошибка ...

Ошибка "Перегруженная функция-член не найдена"
заголовочный файл clas_s.h #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;math.h&gt; using...

6
21 / 21 / 26
Регистрация: 17.03.2015
Сообщений: 119
21.04.2015, 12:35 2
Вы не в том месте определяете конструктор и деструктор класса.
Их описание надо вынести из описания класса.
0
Эксперт С++
1883 / 1231 / 354
Регистрация: 16.05.2013
Сообщений: 3,231
Записей в блоге: 6
21.04.2015, 12:36 3
Лучший ответ Сообщение было отмечено Sylar9 как решение

Решение

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
#include <iostream>
using namespace std;
class Matrix {
private:
    int **Array;
    int nstr, nstl;
public:
    Matrix();
    Matrix(int m, int n);
    ~Matrix();
};
 
//Констроктор
Matrix::Matrix(int m, int n) {
    nstr = m;
    nstl = n;
    Array = new int *[nstr];
    for (int j = 0; j<nstr; j++) {
        Array[j] = new int[nstl];
        for (int i = 0; i<nstl; i++)
            Array[j][i] = 0;
    }
}
//Деструктор
Matrix::~Matrix() {
    for (int i = 0; i<nstr; i++)
        delete[]Array;
}
 
int main() {
 
    return 0;
}
1
21 / 21 / 26
Регистрация: 17.03.2015
Сообщений: 119
21.04.2015, 12:37 4
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
#include <iostream>
using namespace std;
 
class Matrix
{
private:
    int **Array;
    int nstr, nstl;
public:
    Matrix();
    Matrix(int m, int n);
    ~Matrix();
 };
    //Деструктор 
    Matrix::~Matrix()
    {
        for (int i = 0; i<nstr; i++)
            delete[]Array;
    } 
    //Констроктор
    Matrix::Matrix(int m, int n)
    {
        nstr = m;
        nstl = n;
        Array = new int *[nstr];
        for (int j = 0; j<nstr; j++)
        {
            Array[j] = new int[nstl];
            for (int i = 0; i<nstl; i++)
                Array[j][i] = 0;
        }
    }
int main()
{
 
    return 0;
}
Вот так.
0
136 / 57 / 13
Регистрация: 04.09.2011
Сообщений: 1,956
Записей в блоге: 1
21.04.2015, 12:39  [ТС] 5
Цитата Сообщение от LaHaH Посмотреть сообщение
Вот так.
Спасибо, просто давно уже не писал на С++ больше писал на C#, вот пытаюсь написать класс с учебником в руках, а не подскажите, если мне надо перезгразать операто + для матрицы(согласно правилам матрицы) мне надо передавать два параметра ?
0
21 / 21 / 26
Регистрация: 17.03.2015
Сообщений: 119
21.04.2015, 12:50 6
Sylar9, Добрый день. Все зависит от реализации. Если хотите перегрузить оператор "+" как член класса, то передавать 1 аргумент. Если как самостоятельную функцию, то 2 аргумента.
Вот первый случай:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Matrix
{
private:
    int **Array;
    int nstr, nstl;
public:
    Matrix();
    Matrix(int m, int n);
    ~Matrix();
    void operator+ (const Matrix &b);
 };
 
void Matrix::operator+ (Matrix const &b)
{
    //реалзация
 
}
Второй случай:
C++
1
2
3
4
Matrix& operator+ (Matrix const &a,Matrix const &b)
{
    //реалзация
}
0
136 / 57 / 13
Регистрация: 04.09.2011
Сообщений: 1,956
Записей в блоге: 1
21.04.2015, 13:23  [ТС] 7
Цитата Сообщение от LaHaH Посмотреть сообщение
Добрый день. Все зависит от реализации. Если хотите перегрузить оператор "+" как член класса, то передавать 1 аргумент. Если как самостоятельную функцию, то 2 аргумента.
я даже не знаю мне надо реализовать сложения по плавилам сложение матрицы

Добавлено через 21 секунду
Цитата Сообщение от LaHaH Посмотреть сообщение
Sylar9, Добрый день. Все зависит от реализации. Если хотите перегрузить оператор "+" как член класса, то передавать 1 аргумент. Если как самостоятельную функцию, то 2 аргумента.
Не подскажите Создание класса Матрица
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.04.2015, 13:23

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Сообщение об ошибке в строке system("pause");
Заданы матрицы A,B Вычислить A+B+A

Ошибка работы с классом ("функция.уже имеется текст реализации")
Здравствуйте. Я новичок в C++, и в программировании в целом. Помогите пожалуйста. Хочу применить в...

Локальная переменная или функция с именем "ran" уже определена в этой области
Заданы массивы А1(6), А2(7), А3(4), А4(6). Найти минимальное значение положительных чисел массива и...

Тип "Form2" уже определяет член "InitializeComponent" с такими же типами параметров
Добрый день! Подскажите, пожалуйста, как это чинится?

"XXX.Form1" уже определяет член с именем "Form1" с теми же типами параметров
Привет, всем! Есть такой код. using System; using System.Collections.Generic; using...

Тип "Main" уже определяет член с именем "Main" с теми же типами параметров
Имеются два partial класса: public partial class Main : DataContext { public Main(string...


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

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

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