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

Перегрузка оператора < - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Hello world http://www.cyberforum.ru/cpp-beginners/thread1120309.html
пытаюсь запустить прогу в Код-Блокс. Что не так (см. приложение)?
C++ Построить график функции программа которая строит график функции y=|x|sin x Заранее большое спасибо. http://www.cyberforum.ru/cpp-beginners/thread1120299.html
Двумерный массив символов C++
#include <iostream> const int N=255; char **init(int &len){ std::cout<<"len = "; std::cin>>len; //Ввод длины строки char **S=new char*; for (int i=0;i<len;i++) S=new char;
Конструкторы и деструкторы C++
Код: #include <iostream> #include <stdlib.h> #include <conio.h> class complex { private: double im; double re;
C++ Замена символов в строке http://www.cyberforum.ru/cpp-beginners/thread1120269.html
Доброго времени суток. Есть такой код. char text="hello world"; Как заменить слово "world" в этой строке на слово "Mike". Искал в поисковых системах, нашёл функцию StringReplace и метод String.Replase. Только вот при попытке их использовать выходит ошибка, мол необъявленный индефикатор.
C++ Поиск всех путей из одной вершины в другую в неориентированном графе Здравствуйте, участники форума! Срочно необходима ваша помощь! Требуется написать программу, которая будет искать все пути из заданной стартовой вершины в финишную. При этом, для каждого пути она должна считать кол-во пройденных рёбер. Ходить туда-сюда по одному и тому же ребру можно неограниченное количество раз, так как граф неориентированный. Подскажите хотя бы идею, так как даже не... подробнее

Показать сообщение отдельно
Ханапов
2 / 2 / 1
Регистрация: 26.01.2013
Сообщений: 59
16.03.2014, 00:33     Перегрузка оператора <
Здравствуйте. Есть класс треугольник(Triangle), надо перегрузить оператор < для объектов класса Triangle. Написал код, вроде ошибок нет, но среда отказывается компилировать. Доже при попытке вызвать элементарный метод Show класса Point вылезает ошибка-"Point::Show: в вызове функции отсутствует список аргументов; используйте "&Point::Show" для создания указателя на член". Во мой код:



Кликните здесь для просмотра всего текста
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
108
109
110
111
112
// ConsoleApplication5.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include "iostream"
#include <cstring>
using namespace std;
 
class Point
{
public:
    Point(): x(0),y(0){};
    Point(double _x, double _y):x(_x), y(_y){};
    void Show() const;
public:
    double x,y;
};
 
void Point::Show() const {
    cout << " (" << x << "," << y << ")";
}
 
class Triangle
{
public:
    Triangle(Point,Point,Point, const char*);
    Triangle(const char*);
    ~Triangle();
    Point Get_v1() const {return v1;}
    Point Get_v2() const {return v2;}
    Point Get_v3() const {return v3;}
    char* GetName() const {return name;}
    void ShowBase() const;
    void ShowSideAndArea() const;
    bool operator<(Triangle) const;
public:
    static int count;
private:
    char* оbjID;
    char* name;
    Point v1,v2,v3;
    double a,b,c,Square,halfPer;
};
 
//int Triangle::count=0;
 
Triangle::Triangle(Point _v1,Point _v2,Point _v3,const char* ident): v1(_v1), v2(_v2), v3(_v3)
{
    char buf[16];
    оbjID = new char[strlen(ident)+1];
    strcpy(оbjID,ident);
    count++;
    cin >> buf;
    name = new char[strlen(buf)+1];
    strcpy(name,buf);
    a = sqrt(pow((v1.x-v2.x),2)+pow((v1.y-v2.y),2));
    b = sqrt(pow((v2.x-v3.x),2)+pow((v2.y-v3.y),2));
    a = sqrt(pow((v1.x-v3.x),2)+pow((v1.y-v3.y),2));
    halfPer=(a+b+c)/2;
    Square = ceil(sqrt(halfPer*(a-halfPer)*(b-halfPer)*(c-halfPer))*100)/100;
    cout << "Constructor 1 for " << оbjID << "(" << name << ")" << endl;
}
 
 
Triangle::Triangle(const char* ident)
{
    char buf[16];
    оbjID = new char[strlen(ident)+1];
    strcpy(оbjID,ident);
    count++;
    cin >> buf;
    name = new char[strlen(buf)+1];
    strcpy(name,buf);
    a=b=c=0;
    cout << "Constructor 2 for " << оbjID << "(" << name << ")" << endl;
}
 
 
 
Triangle::~Triangle()
{
    cout << "Destructor for " << оbjID << "(" << name << ")" << endl;
    delete [] оbjID;
    delete [] name;
}
 
bool Triangle::operator<(Triangle tr) const
{
    return(Square < tr.Square) ? true : false;
}
 
int Triangle::count=0;
 
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    Point A(0,0);
    Point B(0,10);
    Point C(10,0);
    //A.Show; cout << endl;
    //B.Show; cout << endl;
    //C.Show; cout << endl;
    /*Triangle ABC(A,B,C, "First");
    Point A1(0,0);
    Point B1(0,5);
    Point C1(5,0);
    Triangle ABC1(A1,B1,C1, "Second");
    cout << (ABC <ABC1);*/
    system("pause");
    return 0;
}


Вот ошибка-error C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. strcopy... Что с ней не так? Подскажите пожалуйста.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 03:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru