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

Перегрузка assing operator. Unhandled exception at 0x103157aa (msvcr100d.dll) in 1exColonSynt_withColonSynt.exe: 0xC0000005: Access violation read - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ программа сделана.нужно сделать удаление и добавление элементов http://www.cyberforum.ru/cpp-beginners/thread594446.html
задание к программе. Дан файл, содержащий информацию о результатах спортивных соревнований. Структура записи файла: - номер участника, - фамилия, - город (команда), - количество очков по каждому...
C++ Информационные технологии проделать в экселе Показать, что выражения x=sin(a) и y=cos(a) описывают окружность при изменении а от 0 до 6.28 радиан. http://www.cyberforum.ru/cpp-beginners/thread594429.html
Балансирование вырожденного дерева C++
Допустим у меня есть построенное бинарное дерево поиска. Помогите пожалуйста решить для меня не очень простую задачу. 1) Просто определить является ли данное дерево вырожденным. (каждый родитель...
Алгоритм обхода лабиринта C++
Помогите реализовать алгоритм обхода лабиринта, на примере матрицы nxn, где 1 (единицы) это проходимые элементы, а 0 (нули) это непроходимые элементы, начальные и конечные точки не известны....
C++ Что означает этот warning? http://www.cyberforum.ru/cpp-beginners/thread594386.html
warning: extended initializer lists only available with -std=c++0x or -std=gnu++0x Появляется когда я меняю это: pvertex.x = 0.0; pvertex.y = 0.0; pvertex.z = 0.0; pvertex.u...
C++ Удалить из массива элемент Здравствуйте, помогите плиз с задачкой, Удалить из массива элемент, находящийся перед К-ым, сохраняя порядок следования всех остальных элементов (алгоритм со сжатием). Заранее большое... подробнее

Показать сообщение отдельно
Leeto
7 / 7 / 0
Регистрация: 23.12.2011
Сообщений: 372
Записей в блоге: 1

Перегрузка assing operator. Unhandled exception at 0x103157aa (msvcr100d.dll) in 1exColonSynt_withColonSynt.exe: 0xC0000005: Access violation read - C++

02.06.2012, 21:29. Просмотров 1250. Ответов 7
Метки (Все метки)

Значит есть линия (класс Line ) , которая состоит из точек (Class Point). Хочется Одной линии передать значения другой.
Я перегрузил assing operator для Point работает нормально. Для Класса Line выдает какую злую ошибку Unhandled exception at 0x103157aa (msvcr100d.dll) in 1exColonSynt_withColonSynt.exe: 0xC0000005: Access violation read...

Пожалуйста, посмотрите в чем косяк.
Код ниже.

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
//lines.h
#ifndef LINES_H
#define LINES_H
#include "pointer.h"
 
#include <iostream>
using namespace std;
 
class Line
{
     private:
      Point start; 
      string discrib;
      Point end;
 
   public:
      //constructors and destructor
      Line();
      Line(string x, Point P_start, Point P_end);
      ~Line();
        
      //getters and setters
      void SetStart (const Point SomePoint);
      void SetEnd (const Point SomePoint);
      Point GetStart() const;
      Point GetEnd() const;
 
      //other useful methods
      void Print() const;
      void CalculateLineEquation(Point SomePoint);
      double CalculateDistance (const Point SomePoint) const;
 
      Line operator = (const Line& l);
      friend ostream& operator << (ostream& os , const Line& l);
 
  
};
#endif
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
//pointer.h
#ifndef POINTER_H
#define POINTER_H
 
#include <iostream>
 
using namespace std; 
 
 
class Point
 
{
     private:
      double Xcoord;
      double Ycoord;
 
   public:
      Point();
      Point(const Point &OtherPoint);
      ~Point();
      void Print()const;
      void SetXCoordinate(const double Value);
      void SetYCoordinate(const double Value);
      double GetXCoordinate() const;
      double GetYCoordinate() const;
      void CalculateDistance(const Point OtherPoint) const;
 
      Point operator = (const Point& p);
      friend ostream& operator << (ostream& os , const Point& p);
 
  
 
};
 
#endif
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
//lines.cpp
#include <iostream>
#include <math.h>
#include "lines.h"
using namespace std;
#include <string>
 
 
Line::Line()
{
//  cout << "Privat, I'm line default constractor" << endl;
}
    
 
 
Line::Line(string x, Point P_start, Point P_end)
    :discrib(x), start(P_start), end(P_end)
 
{
 //  cout << "Gooten tak I'm line constructor" << endl;
}
 
 
 
Line::~Line()
{
    //cout << "salut I'm Line distructor. I'm killer " << endl; 
}
 
 
 
void Line::SetStart(const Point SomePoint)
{
   start = SomePoint;
}
 
 
void Line::SetEnd (const Point SomePoint)
{
  end = SomePoint;
}
 
 
 
Point Line::GetStart() const
{
   return start;
}
 
 
 
Point Line::GetEnd() const
{
   return end;
}
 
 
 
void Line::CalculateLineEquation(Point SomePoint) 
{
     start = GetStart();
     end = GetEnd();
     return start.CalculateDistance(end);
}
 
 
 
void Line::Print() const
{
   cout << "Figure it out!" << endl;
   
}
 
Line Line::operator = (const Line& l)
     {
    if (this == &l)
    {
        return * this; 
    }
 
    discrib = l.discrib;
    start = l.start;
    end = l.end;
    
    } 
 
ostream& operator << (ostream& os , const Line& l)
    {
        os << "[(" << l.discrib << "," << l.start << "," << l.end << ")]";
        return os ; 
    }
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
//Pointer.cpp
#include <iostream>
#include <math.h>
#include "pointer.h"
 
using namespace std;
 
 
 
Point::Point()
{
    //cout << "Hi, I'm default Point constructor" << endl; 
}
 
//Construct other points for calculating the points
 
Point::Point(const Point &OtherPoint)
 
{
    
//  cout << "\nHello, I'm Point constructor. " << endl;
    
 
   Xcoord = OtherPoint.Xcoord;
   Ycoord = OtherPoint.Ycoord;
}
 
 
 
//Destructor
 
Point::~Point()
{
    //cout << "\nHi, I'm Point distructor. " <<endl;
    //cout << "I'm already Kill PoDeCo and PoCo hahahahaha:))) "<< endl;
    
}
 
//Assign X-coordinate the Value that is put into the main
 
void Point::SetXCoordinate(const double Value)
{
    Xcoord = Value;
}
 
//Assing Y-coordinate the Value that is put into the main
 
void Point::SetYCoordinate(const double Value)
 
{
    Ycoord = Value;
}
 
//Return X-coordinate
 
double Point::GetXCoordinate() const
 
{
return Xcoord;
}
 
//Return Y-coordinate
 
double Point::GetYCoordinate() const
 
{
return Ycoord;
}
 
//Calculates distance between two points and outputs
 
void Point::CalculateDistance(const Point OtherPoint) const
 
{
double First = Xcoord;
double Second = OtherPoint.Xcoord;
double Third = Ycoord;
double Fourth = OtherPoint.Ycoord;
float Distance = sqrt((Second - First)*(Second-First) + (Fourth - Third)*(Fourth-Third));
cout << "The distance is: " << Distance << endl;
}
 
 
//Prints the points
 
void Point::Print() const
{
 cout << "Point is: (" << Xcoord << ", " << Ycoord << ")" << endl;
}
 
 
ostream& operator << (ostream& os , const Point& p)
    {
        os << "[" << p.GetXCoordinate() << "," << p.GetYCoordinate() << "]";
        return os ; 
    }
 
 
 
     Point Point::operator = (const Point& p)
     {
    if (this == &p)
        return * this; 
 
    Xcoord = p.Xcoord;
    Ycoord = p.Ycoord;
    }
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
//main.cpp
#include <iostream>
#include <math.h>
#include "pointer.h"
#include "lines.h"
 
using namespace std;
 
 
 
int main()
 
{
// Define two objects within Point class 
Point p1;
Point p2;
 
 
 
   //randomize four points
 
 
   //Set these points into different x and y values=
 
   p1.SetXCoordinate(14);
   p1.SetYCoordinate(15);
 
   p2.SetXCoordinate(16);
   p2.SetYCoordinate(17);
 
 
Line MyLine1("Pipec",p1,p2 );
 
 
  Point p33;
  Point p43;
 
  p33.SetXCoordinate(24);
  p33.SetYCoordinate(25);
  p43.SetXCoordinate(21);
  p43.SetYCoordinate(22);
  
  //p33 = p2;
 
  Line test1 ("hi",p33,p43 );
  
  test1 = MyLine1; 
  cout << MyLine1<<endl;
 
  cout << test1 ;
 
  cout << endl;
  system ("pause");
 
}
Заранее огромное спасибо !
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru