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

ошибки при построении проекта - C++

Восстановить пароль Регистрация
 
vladuxa
0 / 0 / 0
Регистрация: 22.03.2013
Сообщений: 23
08.05.2013, 00:15     ошибки при построении проекта #1
Добрый вечер,уважаемые программисты,у меня возникли некие трудности с написанием программы,ибо я на Visual C++ можно сказать не работал,программа готова,но выдает ошибки,что посоветуете?
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
121
122
#include<iostream>
#include<stdio.h>
#include<stdlib.h>
#include"matrix.h"
#include<time.h>
using namespace std;
int main()
{
    const int m = 2;
    const int n = 2;
    int values [m][n];
    srand(time(NULL));
    for(int i = 0; i < m; i++)
    for(int j = 0; j < m; j++)
        values[i][j] = rand() % 50 + 1;
 
    int * pointers[m];
    for (int i = 0;i < m; i++)
    {
        pointers[i] = values[i];
    }
    Matrix uno(pointers,m,n);
    cout<<"matrix"<<endl;
    uno.print();
    cout<<endl;
 
    Matrix dos = uno.sum(uno);
    cout<<"sum matrix"<<endl;
    dos.print();
    cout<<endl;
 
    return 0;
}
 
 
 
matrix.h**********
#include<iostream>
class Matrix
{
public:
    Matrix(int m,int n);
    Matrix(int ** values,int m,int n);
    Matrix();
    Matrix sum(const Matrix & matrix);
    void print();
 
private:
    int m;
    int n;
    int ** values;
}
 
 
 
 
 
matrix.cpp***********
#include<iostream>
#include"matrix.h"
using namespace std;
Matrix::Matrix()
{
    for(int i = 0; i < m; i++)
    {
        delete [] values[i];
    }
    delete [] values;
}
Matrix Matrix::sum(const Matrix & matrix)
{
    Matrix result(m,n);
    for (int i = 0; i < m; i++)
    {
        delete [] values[i];
    }
    delete [] values;
}
Matrix Matrix:: sum(const Matrix & matrix)
{
    for (int i=0; i < m; i++)
    {
        for (int j = 0; j < n; j++)
        {
            result.values[i][j] = values[i][j] + matrix.values[i][j];
        }
    }
    return result;
}
Matrix :: Matrix(int m,int n)
{
    this->n=n;
    this->values = new int*[m];
    this->m=m;for(int i=0; i < m; i++)
    {
        this->values[i] = new int[n];
    }
}
Matrix::Matrix(int**values,int m, int n)
{
    this->n=n;
    this->values = new int*[m];
    this->m=m;for(int i=0; i < m; i++)
    {
        this->values[i] = new int[n];
        for(int j = 0; j < n; j++)
        {
            this->values[i][j]=values[i][j];
        }
    }
}
void Matrix::print()
{
    for(int i=0;i < m; i++)
    {
        for(int j = 0;j < m; j++)
        {
            cout<<values[i][j]<<"\t";
        }
        cout<<endl;
    }
};
Добавлено через 27 минут
все ошибки идут в основном в time.h...
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
SimpleX
1 / 1 / 0
Регистрация: 23.11.2008
Сообщений: 7
08.05.2013, 04:22     ошибки при построении проекта #2
vladuxa, судя по всему, это какая-то лабораторная работа.

В вашем коде есть некоторые странности: удаление массива в конструкторе по умолчанию, разделение функции sum на 2 функции в Matrix.cpp (явная ошибка). Разумеется, такое собираться не будет.

Ниже приведен переписанный код. Повторов много, по этому поводу я не заморачивался. Будет желание - сами сделаете "рефакторинг".
main.cpp
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>
#include<stdlib.h>
#include"matrix.h"
#include<time.h>
 
using namespace std;
 
int main()
{
  const int m = 2;
  const int n = 2;
 
  int values [m][n];
 
  srand(time(NULL));
 
  for(int i = 0; i < m; i++)
    for(int j = 0; j < m; j++)
      values[i][j] = rand() % 50 + 1;
 
  int * pointers[m];
 
  for (int i = 0;i < m; i++)
  {
    pointers[i] = values[i];
  }
  Matrix uno(pointers, m, n);
  cout << "matrix" << endl;
  uno.print();
  cout << endl;
 
  Matrix dos = uno + uno;
  cout << "sum matrix" << endl;
  dos.print();
 
  return 0;
}
Matrix.h
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
#ifndef MATRIX_H
#define MATRIX_H
 
class Matrix
{
public:
  Matrix();
  Matrix(const Matrix& obj);
  Matrix(const unsigned int rows, const unsigned int columns);
  Matrix(int** values, unsigned int rows, unsigned int columns);
  ~Matrix();
 
  Matrix operator +(const Matrix& obj);
  Matrix& operator =(const Matrix& obj);
 
  void print();
 
private:
  unsigned int columns;
  unsigned int rows;
  int** matrix;
};
 
#endif // MATRIX_H
Matrix.cpp
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
#include <iostream>
#include "Matrix.h"
#include <assert.h>
 
using namespace std;
 
Matrix::~Matrix()
{
  for (unsigned int i = 0; i < rows; ++i)
    delete [] matrix[i];
 
  delete [] matrix;
}
 
Matrix Matrix::operator +(const Matrix & obj)
{
  assert(this->rows == obj.rows);
  assert(this->columns == obj.columns);
 
  Matrix result(obj.rows, obj.columns);
 
  for (unsigned int i = 0; i < rows; ++i)
    for (unsigned int j = 0; j < columns; ++j)
      result.matrix[i][j] = obj.matrix[i][j] + this->matrix[i][j];
 
  return result;
}
 
Matrix& Matrix::operator =(const Matrix& obj)
{
  for (unsigned int i = 0; i < rows; ++i)
    delete [] this->matrix[i];
 
  delete [] this->matrix;
 
  this->rows = obj.rows;
  this->columns = obj.columns;
 
  matrix = new int*[rows];
 
  for (unsigned int i = 0; i < rows; ++i) {
    matrix[i] = new int[columns];
 
    for (unsigned int j = 0; j < columns; ++j)
      matrix[i][j] = obj.matrix[i][j];
  }
 
  return *this;
}
 
Matrix::Matrix()
  : matrix(NULL), columns(0), rows(0)
{
}
 
Matrix::Matrix(const Matrix& obj)
  : columns(obj.columns), rows(obj.rows)
{
  matrix = new int*[rows];
 
  for (unsigned int i = 0; i < rows; ++i) {
    matrix[i] = new int[columns];
 
    for (unsigned int j = 0; j < columns; ++j)
      matrix[i][j] = obj.matrix[i][j];
  }
}
 
Matrix::Matrix(const unsigned int rows, const unsigned int columns)
  : rows(rows), columns(columns)
{
  matrix = new int*[rows];
 
  for (unsigned int i = 0; i < rows; ++i)
    matrix[i] = new int[columns];
}
 
Matrix::Matrix(int** values, unsigned int rows, unsigned int columns)
  : rows(rows), columns(columns)
{
  matrix = new int*[rows];
 
  for (unsigned int i = 0; i < rows; ++i) {
    matrix[i] = new int[columns];
 
    for (unsigned int j = 0; j < columns; ++j)
      matrix[i][j] = values[i][j];
  }
}
 
void Matrix::print()
{
  for (unsigned int i = 0; i < rows; ++i) {
    for (unsigned int j = 0; j < columns; ++j)
      std::cout << matrix[i][j] << "\t";
    cout<<endl;
  }
}
vladuxa
0 / 0 / 0
Регистрация: 22.03.2013
Сообщений: 23
08.05.2013, 18:03  [ТС]     ошибки при построении проекта #3
большое спасибо,но при построении проекта у меня теперь не 5 ошибок,а 47.
SimpleX
1 / 1 / 0
Регистрация: 23.11.2008
Сообщений: 7
08.05.2013, 20:31     ошибки при построении проекта #4
Приведите вывод компилятора, пожалуйста. С какой версией студии работаете?
vladuxa
0 / 0 / 0
Регистрация: 22.03.2013
Сообщений: 23
09.05.2013, 14:26  [ТС]     ошибки при построении проекта #5
хмм,странно,вчера вводил несколько раз,пытался посмотреть ошибки,(а их было 47),сейчас только одна,вот
Ошибка 1 error LNK1123: сбой при преобразовании в COFF: файл недопустим или поврежден C:\Users\vladuxa\Documents\Visual Studio 2010\Projects\4\4\LINK 4

извиняюсь,что без скрина,я на этом сайте не так уж и давно,не совсем разобрался что да как.
SimpleX
1 / 1 / 0
Регистрация: 23.11.2008
Сообщений: 7
09.05.2013, 23:16     ошибки при построении проекта #6
Попробуйте создать новый проект и включить в него эти 3 файла.

У меня MinGW и MSVC2012 все собирают.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
10.05.2013, 00:16     ошибки при построении проекта #7
Цитата Сообщение от vladuxa Посмотреть сообщение
Ошибка 1 error LNK1123:
12 Студия стояла? Ошибка 1>LINK : fatal error LNK1123: failure during conversion to COFF: file invalid or corrupt
vladuxa
0 / 0 / 0
Регистрация: 22.03.2013
Сообщений: 23
10.05.2013, 16:40  [ТС]     ошибки при построении проекта #8
Да,стояла,правда она пробной была,и я ее снес.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
10.05.2013, 19:49     ошибки при построении проекта #9
Цитата Сообщение от vladuxa Посмотреть сообщение
Да,стояла,правда она пробной была,и я ее снес.
Удаляйте из системы NET Framework 4.5.
vladuxa
0 / 0 / 0
Регистрация: 22.03.2013
Сообщений: 23
10.05.2013, 23:03  [ТС]     ошибки при построении проекта #10
мне еще посоветовали в свойствах проекта,в компоновщике нужно заменить Да (/INCREMENTAL) и все будет нормально работать,сейчас буду пробовать

Добавлено через 1 час 28 минут
и еще проблема,почему при выполнении программы командная строка запускается и сразу прекращает свое выполнение...
заранее спасибо.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
10.05.2013, 23:10     ошибки при построении проекта #11
Цитата Сообщение от vladuxa Посмотреть сообщение
и еще проблема,почему при выполнении программы командная строка запускается и сразу прекращает свое выполнение...
system("pause"); в конце main() есть?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.05.2013, 00:00     ошибки при построении проекта
Еще ссылки по теме:

C++ Ошибка при построении
Code::Blocks, ошибки при сборке проекта, использующего OpenGL C++
Ошибка при построении релиза проекта C++

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

Или воспользуйтесь поиском по форуму:
SimpleX
1 / 1 / 0
Регистрация: 23.11.2008
Сообщений: 7
11.05.2013, 00:00     ошибки при построении проекта #12
добавь в конце функции main
C++
1
std::cin.get();
Yandex
Объявления
11.05.2013, 00:00     ошибки при построении проекта
Ответ Создать тему
Опции темы

Текущее время: 06:42. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru