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

AlisherIITU

Укажите пожалуйста на ошибку
#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();
    ****** distance(int,int);
    ****** 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<< ")";
}
 
****** MyPoint::distance(int x,int y)
{
    int xDiff = this->x - x;
      int yDiff = this->y - y;
     return sqrt(xDiff*xDiff + yDiff*yDiff);
}
 
****** 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;
}
7 ответов

AlisherIITU

#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();
    ****** distance(int,int);
    ****** 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<< ")";
}
 
****** MyPoint::distance(int x,int y)
{
    int xDiff = this->x - x;
      int yDiff = this->y - y;
     return sqrt(xDiff*xDiff + yDiff*yDiff);
}
 
****** 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

#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();
    ****** distance(int,int);
    ****** 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<< ")";
}
 
****** MyPoint::distance(int x,int y)
{
    int xDiff = this->x - x;
      int yDiff = this->y - y;
     return sqrt(xDiff*xDiff + yDiff*yDiff);
}
 
****** 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: должна возвращать значение


AlisherIITU

после 62 строчки поставь return 0; и после 12 строки не хватает ;


AlisherIITU

Спасибо, исправил вот что пишет не пойму error C4716: MyPoint::toString: должна возвращать значение
фунуиця описана так что должна возвращать значение типа string (компилятор просит вставить слово return), а на самом деле по реализации она просто выводит на консоль строку. Тогда просто вместо возвращаемого типа string укажи void.Или внутри создай временную переменную temp типа string, сформируй ее и возвращай в качестве параметра с returm temp;
после 62 строчки поставь return 0; и после 12 строки не хватает ;
после 12-й всего хватает, там реализация сразу, а после нее ";" стоИт.


AlisherIITU

после 62 строчки поставь return 0; и после 12 строки не хватает ;
строка 84 cout


AlisherIITU

строка 84 cout
согласен)) повытирал лишнегокак-то так
Кликните здесь для просмотра всего текста
#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();
    ****** distance(int,int);
    ****** 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<< ")";
}
 
****** MyPoint::distance(int x,int y)
{
    int xDiff = this->x - x;
      int yDiff = this->y - y;
     return sqrt(xDiff*xDiff + yDiff*yDiff);
}
 
****** 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;
}


AlisherIITU

согласен)) повытирал лишнегокак-то так
Кликните здесь для просмотра всего текста
#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();
    ****** distance(int,int);
    ****** 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<< ")";
}
 
****** MyPoint::distance(int x,int y)
{
    int xDiff = this->x - x;
      int yDiff = this->y - y;
     return sqrt(xDiff*xDiff + yDiff*yDiff);
}
 
****** 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 ******. 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)).
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();
    ****** 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<<")";
}
 
****** MyTriangle::getPerimeter()
{
 
}