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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
vladuxa
0 / 0 / 0
Регистрация: 22.03.2013
Сообщений: 24
#1

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

08.05.2013, 00:15. Просмотров 560. Ответов 11
Метки нет (Все метки)

Добрый вечер,уважаемые программисты,у меня возникли некие трудности с написанием программы,ибо я на 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...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.05.2013, 00:15
Здравствуйте! Я подобрал для вас темы с ответами на вопрос ошибки при построении проекта (C++):

Проблемы при создании и построении проекта Microsoft Visual Studio 2008 Ошибки! - C++
Проблемы при создании и построении проекта Microsoft Visual Studio 2008. Ошибки!!!

Ошибка при построении релиза проекта - C++
Visual Studio 2010 ругается на мой проект и пишет: 1&gt;sfml-system-s-d.lib(ThreadLocal.cpp.obj) : error LNK2038: обнаружено несоответствие...

netbeans выводит квадратики при построении проекта - C++
Стоит windows 7. Пробовал менять шрифт в выводе, язык иде, кодировку через -J-Dfile.encoding=UTF-8 , так же с ключом cp1251. Ничего не...

Ошибки при построении - C++
Жалуется на error C2065: sinx: необъявленный идентификатор и error C2146: синтаксическая ошибка: отсутствие &quot;;&quot; перед идентификатором &quot;x&quot;....

Исправить ошибки при построении решения - C++
Почему MS VS 2012 ultimate может выводить 20 ошибок компиляции при построении этого кода: #include &quot;stdafx.h&quot; #include &lt;iostream&gt; ...

Библиотека FLTK - ошибки при построении решения - C++
Здравствуйте уважаемые, возникла следующая проблема: после того, как я подключил и присоединил библиотеку FLTK при попытке собрать решение...

11
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;
  }
}
1
vladuxa
0 / 0 / 0
Регистрация: 22.03.2013
Сообщений: 24
08.05.2013, 18:03  [ТС] #3
большое спасибо,но при построении проекта у меня теперь не 5 ошибок,а 47.
0
SimpleX
1 / 1 / 0
Регистрация: 23.11.2008
Сообщений: 7
08.05.2013, 20:31 #4
Приведите вывод компилятора, пожалуйста. С какой версией студии работаете?
0
vladuxa
0 / 0 / 0
Регистрация: 22.03.2013
Сообщений: 24
09.05.2013, 14:26  [ТС] #5
хмм,странно,вчера вводил несколько раз,пытался посмотреть ошибки,(а их было 47),сейчас только одна,вот
Ошибка 1 error LNK1123: сбой при преобразовании в COFF: файл недопустим или поврежден C:\Users\vladuxa\Documents\Visual Studio 2010\Projects\4\4\LINK 4

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

У меня MinGW и MSVC2012 все собирают.
0
alsav22
5421 / 4816 / 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
0
vladuxa
0 / 0 / 0
Регистрация: 22.03.2013
Сообщений: 24
10.05.2013, 16:40  [ТС] #8
Да,стояла,правда она пробной была,и я ее снес.
0
alsav22
5421 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
10.05.2013, 19:49 #9
Цитата Сообщение от vladuxa Посмотреть сообщение
Да,стояла,правда она пробной была,и я ее снес.
Удаляйте из системы NET Framework 4.5.
0
vladuxa
0 / 0 / 0
Регистрация: 22.03.2013
Сообщений: 24
10.05.2013, 23:03  [ТС] #10
мне еще посоветовали в свойствах проекта,в компоновщике нужно заменить Да (/INCREMENTAL) и все будет нормально работать,сейчас буду пробовать

Добавлено через 1 час 28 минут
и еще проблема,почему при выполнении программы командная строка запускается и сразу прекращает свое выполнение...
заранее спасибо.
0
alsav22
5421 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
10.05.2013, 23:10 #11
Цитата Сообщение от vladuxa Посмотреть сообщение
и еще проблема,почему при выполнении программы командная строка запускается и сразу прекращает свое выполнение...
system("pause"); в конце main() есть?
1
SimpleX
1 / 1 / 0
Регистрация: 23.11.2008
Сообщений: 7
11.05.2013, 00:00 #12
добавь в конце функции main
C++
1
std::cin.get();
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.05.2013, 00:00
Привет! Вот еще темы с ответами:

Ошибки при запуске проекта с OpenCV - C++
Добрый день. Начал изучать OpenCV и столкнулся вот с такой трудностью. Взял текст программы с http://robocraft.ru/ и при запуске возникла...

Как исправить ошибки при компиляции проекта? - C++
Недавно набросал достаточно много классов, для проекта. Но ошибок компиляции получилось почему то ну очень много. И я не понимаю как их...

Code::Blocks, ошибки при сборке проекта, использующего OpenGL - C++
Всем привет! У меня вот такие ошибки: ||=== Build: Debug in test6 (compiler: GNU GCC Compiler) ===| obj\Debug\test6Main.o||In...

При запуске скомпилированного проекта Visual Studio 2010 возникает ошибка: В ходе построения произошли ошибки - C++
Последние 7 листингов из книги не работают. Не могут они все быть с ошибками. Скорее всего что-то произошло с этой грёбаной Студией. Все...


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

Или воспользуйтесь поиском по форуму:
12
Yandex
Объявления
11.05.2013, 00:00
Ответ Создать тему
Опции темы

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