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

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

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

компенсатор ругается когда пытаюсь внедрить defualt and normal inline - C++

16.05.2012, 13:52. Просмотров 286. Ответов 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
//pointer.h
#ifndef POINTER_H
#define POINTER_H
 
class Point
 
{
    private:
      double Xcoord;
      double Ycoord;
 
   public:
      Point();
      Point(const Point &OtherPoint);
      ~Point();
      void Print()const;
      void SetXCoordinate(const double Value)  { Xcoord = Value;} ;
      void SetYCoordinate(const double Value)  { Ycoord = Value;} ;
      double GetXCoordinate() const;    
      double GetYCoordinate() const;        
      void CalculateDistance(const Point OtherPoint) const;
};  
 
inline double Point::GetXCoordinate() const {return Xcoord;}
inline double Point::GetYCoordinate() const {return Ycoord;}
 
 
#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
//pointer.cpp
#include <iostream>
 
#include <math.h>
 
#include "pointer.h"
 
using namespace std;
 
 
 
Point::Point()
{
}
 
//Construct other points for calculating the points
 
Point::Point(const Point &OtherPoint)
 
{
   Xcoord = OtherPoint.Xcoord;
   Ycoord = OtherPoint.Ycoord;
}
 
 
 
//Destructor
 
Point::~Point()
{
}
 
//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;
double 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;
}
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
//main.cpp
#include <iostream>
#include <math.h>
#include "pointer.h"
#include "Circle.h"
 
#define _USE_MATH_DEFINES 
#include <cmath> 
#include <sstream>        // for stringstream
#include <string> 
 
using namespace std;
 
int main()
 
{
// Define two things within Point class
 
Point p1;
Circle MyCircle;
 
 
 
   //randomize four points
 
   srand(33);
   int x1 = rand()%92;
   int y1 = rand()%13;
   double r = rand()%43;
 
 
 
   //Set these points into different x and y values
 
   p1.SetXCoordinate(x1);
   p1.SetYCoordinate(y1);
 
 
 
   MyCircle.SetCentral(p1);
   MyCircle.SetRadius(r);
   MyCircle.ToString();
 
   cout << endl;
   system ("pause");
 
}
Сто процентов ошибка из за inline метода если убрать то все нормально будет работать. Да кстати не запостил код с другим классом как вы можете догадаться он в принципе не нужен. Просто проблема в синтаксене внедрения inline в h файле. Скажи плиз что не так ?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.05.2012, 13:52     компенсатор ругается когда пытаюсь внедрить defualt and normal inline
Посмотрите здесь:

Heap corruption detected after normal block - C++
выкидывает ошибку при попытке освободить память массива, делаю так: char **Items; ... free(Items);

Heap corruption detected after normal block #980 - C++
Здравствуйте! Нужна ваша помощь. Как я понимаю, ошибка возникает во время работы функции Deriv(), но мне не понятно почему она возникает....

Heap corruption detected: after normal block (#153) at 0x00345730 - C++
#ifndef COW_H__ #define COW_H__ class Cow { char name; char *hobby; double weight; static int num;// chislo obektov

Когда надо использовать списки инициализации, а когда можно заменить их констуктором по умолчанию? - C++
1)Любезные,скажите когда надо исп. списки инициализации, а когда можно заменить констуктором по умолчанию? 2) правильно ли...

Когда нужно использовать &ссылки ,а когда *указатели? - C++
Желательно с примерами

Когда запускаю и ввожу параметры, то, в момент когда программа должна выполнять действие, пишет ошибку - C++
Недавно начали изучать c++. так как в школе не было программирования (преподу пофиг было) я в универе отстаю ;c Написал программу по...

Перестало выводить, когда задание списков перевел в конструкторы, когда были просто функции выводило нормально. - C++
Не могу понять почему не выводит список на экран Перестало выводить, когда задание списков перевел в конструкторы, когда были просто...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
В астрале
Эксперт С++
7968 / 4730 / 320
Регистрация: 24.06.2010
Сообщений: 10,539
Завершенные тесты: 3
16.05.2012, 15:21     компенсатор ругается когда пытаюсь внедрить defualt and normal inline #2
Leeto, А ничего, что у вас в h файле есть реализация методов Get*Coordinate и в cpp?
Leeto
7 / 7 / 0
Регистрация: 23.12.2011
Сообщений: 372
Записей в блоге: 1
16.05.2012, 16:02  [ТС]     компенсатор ругается когда пытаюсь внедрить defualt and normal inline #3
Цитата Сообщение от ForEveR Посмотреть сообщение
Leeto, А ничего, что у вас в h файле есть реализация методов Get*Coordinate и в cpp?
Координаты точки для в классе реализованы приватно. Я сначало пользуюсь функцией геткоординат чтобы установить необходимое значение потом, пользуюсь сеткоординат, чтобы получить доступ к этим данным.
ForEveR
В астрале
Эксперт С++
7968 / 4730 / 320
Регистрация: 24.06.2010
Сообщений: 10,539
Завершенные тесты: 3
16.05.2012, 16:04     компенсатор ругается когда пытаюсь внедрить defualt and normal inline #4
.h файл

C++
1
2
inline double Point::GetXCoordinate() const {return Xcoord;}
inline double Point::GetYCoordinate() const {return Ycoord;}
.cpp файл

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//Return X-coordinate
 
double Point::GetXCoordinate() const
 
{
return Xcoord;
}
 
//Return Y-coordinate
 
double Point::GetYCoordinate() const
 
{
return Ycoord;
}
Уж решите, где будете реализовывать-то
gray_fox
What a waste!
1256 / 1139 / 55
Регистрация: 21.04.2012
Сообщений: 2,361
Завершенные тесты: 3
16.05.2012, 16:07     компенсатор ругается когда пытаюсь внедрить defualt and normal inline #5
Вам про другое говорят: у вас setters&getters реализованы и в .h, и в .cpp.
Leeto
7 / 7 / 0
Регистрация: 23.12.2011
Сообщений: 372
Записей в блоге: 1
16.05.2012, 16:34  [ТС]     компенсатор ругается когда пытаюсь внедрить defualt and normal inline #6
Цитата Сообщение от gray_fox Посмотреть сообщение
Вам про другое говорят: у вас setters&getters реализованы и в .h, и в .cpp.
А т.е. смысл в том, что если я хочу эту функции inline то мне надо их только в h реализовывать, а в cpp надо их убрать. Я правильно понимаю ? По крайнем мере я сейчас закоментил эти функции в cpp и у меня все заработало.

Добавлено через 3 минуты
ForEveR , Carmageddon супер игрушка была !
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.05.2012, 16:46     компенсатор ругается когда пытаюсь внедрить defualt and normal inline
Еще ссылки по теме:

Когда используется * перед указателями, а когда нет? - C++
Вообщем я запутался и не пойму, когда нужно перед указателем ставить &quot;*&quot;, а когда нет. Как я понял, &quot;*&quot; ставится перед указателем,...

Записать условия когда является истинным , когда: - C++
Записать условия когда является истинным , когда: целое N кратно четырем и не оканчивается нулем Привет всем вот мой код но он у меня...

Когда использовать WinAPI, а когда функции языка? - C++
Не совсем понимаю, когда нужно использовать WinAPI в приложении, а когда функционал самого ЯП (С/С++). Для той же работы с файлами...

Внедрить hex в указатель int - C++
Здравствуйте, собственно как внедрить hex в память, нужно нечто подобное: int *i = new int(); i = 0xFF; i = 0xFF; i = 0xFF; ...

inline - C++
В хедере определён класс со static-методами, в исходнике реализация этих методов. Один из методов определяется с ключевым словом inline....


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

Или воспользуйтесь поиском по форуму:
gray_fox
What a waste!
1256 / 1139 / 55
Регистрация: 21.04.2012
Сообщений: 2,361
Завершенные тесты: 3
16.05.2012, 16:46     компенсатор ругается когда пытаюсь внедрить defualt and normal inline #7
Цитата Сообщение от Leeto Посмотреть сообщение
А т.е. смысл в том, что если я хочу эту функции inline то мне надо их только в h реализовывать, а в cpp надо их убрать. Я правильно понимаю ?
Просто реализуйте в одном месте, или в h., или в cpp., inline можно приписать и в cpp. Вообще inline - это только рекомендация, в конечном счёте компилятор всё равно сам решит, что встраивать, а что - нет.
Yandex
Объявления
16.05.2012, 16:46     компенсатор ругается когда пытаюсь внедрить defualt and normal inline
Ответ Создать тему
Опции темы

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