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

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

Войти
Регистрация
Восстановить пароль
 
AlisherIITU
2 / 2 / 1
Регистрация: 10.09.2013
Сообщений: 129
#1

Ошибка при компиляции - C++

27.12.2013, 16:41. Просмотров 245. Ответов 7
Метки нет (Все метки)

Укажите пожалуйста на ошибку

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
#include <iostream>
#include <cstring>
#include <cmath>
using namespace std;
 
class MyPoint
{
    int x;
    int y;
public:
    MyPoint(){}
    MyPoint(int x, int y){}
    void setX(int);
    void setY(int);
    int getX();
    int getY();
    void setXY(int ,int);
    string toString();
    double distance(int,int);
    double distance(MyPoint);
 
};
 
MyPoint::MyPoint()
{
    x=0;
    y=0;
}
 
MyPoint::MyPoint(int x,int y)
{
    this->x = x;
    this->y = y;
}
void MyPoint::setX(int x)
{
    this->x=x;
}
 
void MyPoint::setY(int y)
{
    this->y=y;
}
 
int MyPoint::getX()
{
    return x;
}
 
void MyPoint::setXY(int x, int y) 
{
      this->x = x;
      this->y = y;
}
 
int MyPoint::getY()
{
    return y;
}
 
string MyPoint::toString()
{
    cout<< "("<< x <<","<< y<< ")";
}
 
double MyPoint::distance(int x,int y)
{
    int xDiff = this->x - x;
      int yDiff = this->y - y;
     return sqrt(xDiff*xDiff + yDiff*yDiff);
}
 
double MyPoint::distance(MyPoint another)
{
    int xDiff = this->x - another.x;
      int yDiff = this->y - another.y;
     return sqrt(xDiff*xDiff + yDiff*yDiff);
}
 
int main ()
{
    MyPoint  p1,p2;
    p1.setXY(0,3);
    p2.setXY(4,0);
    p1.distance(4,0);
    p1.distance(p2);
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
azbest
41 / 41 / 8
Регистрация: 12.03.2013
Сообщений: 148
27.12.2013, 17:02     Ошибка при компиляции #2
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
#include <iostream>
#include <cstring>
#include <cmath>
using namespace std;
 
class MyPoint
{
    int x;
    int y;
public:
    MyPoint();  //было тут {} - была начата реализация функции, а потом опять шло переопредение 
    MyPoint(int x, int y) 
{
    this->x = x;
    this->y = y;
};  // аналогично, просто убери фигурные скобки, или пиши реализацию сразу тут
    void setX(int);
    void setY(int);
    int getX();
    int getY();
    void setXY(int ,int);
    string toString();
    double distance(int,int);
    double distance(MyPoint);
 
};
 
MyPoint::MyPoint()
{
    x=0;
    y=0;
}
 
void MyPoint::setX(int x)
{
    this->x=x;
}
 
void MyPoint::setY(int y)
{
    this->y=y;
}
 
int MyPoint::getX()
{
    return x;
}
 
void MyPoint::setXY(int x, int y)
{
      this->x = x;
      this->y = y;
}
 
int MyPoint::getY()
{
    return y;
}
 
string MyPoint::toString()
{
    cout<< "("<< x <<","<< y<< ")";
}
 
double MyPoint::distance(int x,int y)
{
    int xDiff = this->x - x;
      int yDiff = this->y - y;
     return sqrt(xDiff*xDiff + yDiff*yDiff);
}
 
double MyPoint::distance(MyPoint another)
{
    int xDiff = this->x - another.x;
      int yDiff = this->y - another.y;
     return sqrt(xDiff*xDiff + yDiff*yDiff);
}
 
int main ()
{
    MyPoint  p1,p2;
    p1.setXY(0,3);
    p2.setXY(4,0);
    out << p1.distance(4,0) << endl;  // сдесь просто добавил выведение результатов
   cout << p1.distance(p2)<< endl;
    return 0;
}
AlisherIITU
2 / 2 / 1
Регистрация: 10.09.2013
Сообщений: 129
27.12.2013, 17:09  [ТС]     Ошибка при компиляции #3
Цитата Сообщение от azbest Посмотреть сообщение
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
#include <iostream>
#include <cstring>
#include <cmath>
using namespace std;
 
class MyPoint
{
    int x;
    int y;
public:
    MyPoint();  //было тут {} - была начата реализация функции, а потом опять шло переопредение 
    MyPoint(int x, int y) 
{
    this->x = x;
    this->y = y;
};  // аналогично, просто убери фигурные скобки, или пиши реализацию сразу тут
    void setX(int);
    void setY(int);
    int getX();
    int getY();
    void setXY(int ,int);
    string toString();
    double distance(int,int);
    double distance(MyPoint);
 
};
 
MyPoint::MyPoint()
{
    x=0;
    y=0;
}
 
void MyPoint::setX(int x)
{
    this->x=x;
}
 
void MyPoint::setY(int y)
{
    this->y=y;
}
 
int MyPoint::getX()
{
    return x;
}
 
void MyPoint::setXY(int x, int y)
{
      this->x = x;
      this->y = y;
}
 
int MyPoint::getY()
{
    return y;
}
 
string MyPoint::toString()
{
    cout<< "("<< x <<","<< y<< ")";
}
 
double MyPoint::distance(int x,int y)
{
    int xDiff = this->x - x;
      int yDiff = this->y - y;
     return sqrt(xDiff*xDiff + yDiff*yDiff);
}
 
double MyPoint::distance(MyPoint another)
{
    int xDiff = this->x - another.x;
      int yDiff = this->y - another.y;
     return sqrt(xDiff*xDiff + yDiff*yDiff);
}
 
int main ()
{
    MyPoint  p1,p2;
    p1.setXY(0,3);
    p2.setXY(4,0);
    out << p1.distance(4,0) << endl;  // сдесь просто добавил выведение результатов
   cout << p1.distance(p2)<< endl;
    return 0;
}
Спасибо, исправил вот что пишет не пойму error C4716: MyPoint::toString: должна возвращать значение
sergei60
47 / 28 / 4
Регистрация: 10.06.2012
Сообщений: 372
27.12.2013, 17:21     Ошибка при компиляции #4
после 62 строчки поставь return 0; и после 12 строки не хватает ;
azbest
41 / 41 / 8
Регистрация: 12.03.2013
Сообщений: 148
27.12.2013, 17:27     Ошибка при компиляции #5
Цитата Сообщение от AlisherIITU Посмотреть сообщение
Спасибо, исправил вот что пишет не пойму error C4716: MyPoint::toString: должна возвращать значение
фунуиця описана так что должна возвращать значение типа string (компилятор просит вставить слово return), а на самом деле по реализации она просто выводит на консоль строку. Тогда просто вместо возвращаемого типа string укажи void.

Или внутри создай временную переменную temp типа string, сформируй ее и возвращай в качестве параметра с returm temp;

Добавлено через 4 минуты
Цитата Сообщение от sergei60 Посмотреть сообщение
после 62 строчки поставь return 0; и после 12 строки не хватает ;
после 12-й всего хватает, там реализация сразу, а после нее ";" стоИт.
sergei60
47 / 28 / 4
Регистрация: 10.06.2012
Сообщений: 372
27.12.2013, 17:27     Ошибка при компиляции #6
Цитата Сообщение от sergei60 Посмотреть сообщение
после 62 строчки поставь return 0; и после 12 строки не хватает ;
строка 84 cout
azbest
41 / 41 / 8
Регистрация: 12.03.2013
Сообщений: 148
27.12.2013, 17:31     Ошибка при компиляции #7
Цитата Сообщение от sergei60 Посмотреть сообщение
строка 84 cout
согласен)) повытирал лишнего

Добавлено через 2 минуты
как-то так

Кликните здесь для просмотра всего текста
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
#include <iostream>
#include <cstring>
#include <cmath>
using namespace std;
 
class MyPoint
{
    int x;
    int y;
public:
    MyPoint();
    MyPoint(int x, int y)
{
    this->x = x;
    this->y = y;
};
    void setX(int);
    void setY(int);
    int getX();
    int getY();
    void setXY(int ,int);
    void toString();
    double distance(int,int);
    double distance(MyPoint);
 
};
 
MyPoint::MyPoint()
{
    x=0;
    y=0;
}
 
void MyPoint::setX(int x)
{
    this->x=x;
}
 
void MyPoint::setY(int y)
{
    this->y=y;
}
 
int MyPoint::getX()
{
    return x;
}
 
void MyPoint::setXY(int x, int y)
{
      this->x = x;
      this->y = y;
}
 
int MyPoint::getY()
{
    return y;
}
 
void MyPoint::toString()
{
    cout << "("<< x <<","<< y<< ")";
}
 
double MyPoint::distance(int x,int y)
{
    int xDiff = this->x - x;
      int yDiff = this->y - y;
     return sqrt(xDiff*xDiff + yDiff*yDiff);
}
 
double MyPoint::distance(MyPoint another)
{
    int xDiff = this->x - another.x;
      int yDiff = this->y - another.y;
     return sqrt(xDiff*xDiff + yDiff*yDiff);
}
 
int main ()
{
    MyPoint  p1,p2;
    p1.setXY(0,3);
    p2.setXY(4,0);
    cout << p1.distance(4,0) << endl;
    cout << p1.distance(p2) << endl;
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.12.2013, 17:36     Ошибка при компиляции
Еще ссылки по теме:

C++ Ошибка при компиляции
C++ Ошибка при компиляции
Ошибка при компиляции C++
C++ Ошибка при компиляции
Ошибка при компиляции C++

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

Или воспользуйтесь поиском по форуму:
AlisherIITU
2 / 2 / 1
Регистрация: 10.09.2013
Сообщений: 129
27.12.2013, 17:36  [ТС]     Ошибка при компиляции #8
Цитата Сообщение от azbest Посмотреть сообщение
согласен)) повытирал лишнего

Добавлено через 2 минуты
как-то так

Кликните здесь для просмотра всего текста
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
#include <iostream>
#include <cstring>
#include <cmath>
using namespace std;
 
class MyPoint
{
    int x;
    int y;
public:
    MyPoint();
    MyPoint(int x, int y)
{
    this->x = x;
    this->y = y;
};
    void setX(int);
    void setY(int);
    int getX();
    int getY();
    void setXY(int ,int);
    void toString();
    double distance(int,int);
    double distance(MyPoint);
 
};
 
MyPoint::MyPoint()
{
    x=0;
    y=0;
}
 
void MyPoint::setX(int x)
{
    this->x=x;
}
 
void MyPoint::setY(int y)
{
    this->y=y;
}
 
int MyPoint::getX()
{
    return x;
}
 
void MyPoint::setXY(int x, int y)
{
      this->x = x;
      this->y = y;
}
 
int MyPoint::getY()
{
    return y;
}
 
void MyPoint::toString()
{
    cout << "("<< x <<","<< y<< ")";
}
 
double MyPoint::distance(int x,int y)
{
    int xDiff = this->x - x;
      int yDiff = this->y - y;
     return sqrt(xDiff*xDiff + yDiff*yDiff);
}
 
double MyPoint::distance(MyPoint another)
{
    int xDiff = this->x - another.x;
      int yDiff = this->y - another.y;
     return sqrt(xDiff*xDiff + yDiff*yDiff);
}
 
int main ()
{
    MyPoint  p1,p2;
    p1.setXY(0,3);
    p2.setXY(4,0);
    cout << p1.distance(4,0) << endl;
    cout << p1.distance(p2) << endl;
    return 0;
}
помоги пожалуйста написать еще один класс через этот класс

Write a class called MyTriangle, which models a triangle with 3 vertices, is
designed as follows. It contains:
1. The MyTriangle class uses three MyPoint instances as the three vertices.
2. Three private instance variables v1, v2, v3 (instances of MyPoint), for
the three vertices.
3. A constructor that constructs a MyTriangle with three points v1=(x1,
y1), v2=(x2, y2), v3=(x3, y3).
4. An overloaded constructor that constructs a MyTriangle given three
instances of MyPoint.
5. A toString() function that returns a string description of the instance in the
format "Triangle @ (x1, y1), (x2, y2), (x3, y3)".
6. A getPerimeter() function that returns the length of the perimeter in
double. You should use the distance() method of MyPoint to compute
the perimeter.
7. Also write a test program (called main.cpp) to test all the functions defined
in the class (example of a triangle: (-2, 1), (1, 3) and (3, -3)).

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
class MyTriangle
{
    MyPoint v1;
    MyPoint v2;
    MyPoint v3;
public:
    MyTriangle(int x1,int y1,int x2,int y2,int x3,int y3);
    MyTriangle(MyPoint v1,MyPoint v2,MyPoint v3){}
    string toString();
    double getPerimeter();
};
 
MyTriangle::MyTriangle(int x1,int y1,int x2,int y2,int x3,int y3)
{
   v1=(x1,y1);
   v2=(x2, y2);
   v3=(x3, y3);
}
 
string MyTriangle::toString()
{
    cout<<"Triangle"<<"@"<<"("<<x1<<","<<y1<<")"<<","<<"("<<x2<<","<<y2<<")"<<","<<"("<<x3<<","<<y3<<")";
}
 
double MyTriangle::getPerimeter()
{
 
}
Yandex
Объявления
27.12.2013, 17:36     Ошибка при компиляции
Ответ Создать тему
Опции темы

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