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

Перегрузка 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
задание к программе. Дан файл, содержащий информацию о результатах спортивных соревнований. Структура записи файла: - номер участника, - фамилия, - город (команда), - количество очков по каждому из двух видов состязаний. Написать программу, выдающую - фамилии призеров по сумме результатов, - результаты заданного спортсмена. ниже архив с этой программой.требуется помощь в добавлении и...
Visual C++ Что значат данные ошибки? у меня выходят такие ошибки, что это значит? http://www.cyberforum.ru/cpp-beginners/thread594433.html
Информационные технологии проделать в экселе C++
Показать, что выражения x=sin(a) и y=cos(a) описывают окружность при изменении а от 0 до 6.28 радиан.
Балансирование вырожденного дерева C++
Допустим у меня есть построенное бинарное дерево поиска. Помогите пожалуйста решить для меня не очень простую задачу. 1) Просто определить является ли данное дерево вырожденным. (каждый родитель имеет только один потомок или левый или правый) 2) Если да, то перестроить его в идеально сбалансированное. Идеально сбалансированное - дерево, где для каждого узла количество узлов в левом и правом...
C++ Алгоритм обхода лабиринта http://www.cyberforum.ru/cpp-beginners/thread594411.html
Помогите реализовать алгоритм обхода лабиринта, на примере матрицы nxn, где 1 (единицы) это проходимые элементы, а 0 (нули) это непроходимые элементы, начальные и конечные точки не известны. Программа сама должна найти начальную точку (единицу), и пройдя путь до противоположного конца, должна указать, если путь от от одного края до другого или нету. Желательно чтобы сама матрица каждый раз была...
C++ Что означает этот warning? 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 = 0.0; pvertex.v = 0.0; подробнее

Показать сообщение отдельно
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. Просмотров 1127. Ответов 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");
 
}
Заранее огромное спасибо !
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 19:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru