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

Задачка на explicit - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Ошибка: string subscript out of range http://www.cyberforum.ru/cpp-beginners/thread580725.html
При запуске выдает ошибку "string subscript out of range". Подскажите, в чем проблема. #include "stdafx.h" #include <iostream> #include <stdio.h> #include <string.h> using namespace std; void main( void ) {
C++ Минимальная длина слова в предложении Здравствуйте, мне надо вывести слово минимальной длины из введенного предложения, вот получилось пока только это, в итоге выводит только длинну слов через пробел(f). Наверное надо эту длину слов забить в динамический массив а потом вывести оттуда минимальный элемент, так ли это?. Спасибо #include <iostream> #include <stdio.h> #define dl 80 using namespace std; int main() { char s; http://www.cyberforum.ru/cpp-beginners/thread580706.html
Вывести индекс элемента массива C++
В программа считает сумму строк и сумму столбиков в двумерном массиве. Суммы одинаковых за номером строк и столбцов сравниваются и, если они совпали, то вывести сумму. Мне необходимо вывести и индекс той строки или столбца ( так как массив n*n), где суммы совпали.
Сортировка ест. слиянием C++
Задача : Отсортировать текстовый файл, содержащий вещественные числа, в порядке убывания методом естественного слияния.
C++ Графы, обход графа, поиск http://www.cyberforum.ru/cpp-beginners/thread580636.html
Обеспечить хранение графа в виде матрицы смежности Задание : Найти в графе двунаправленным ребра. Добавлено через 33 секунды и если можно скрин программы
C++ Friend что то не френдится //Point.h #ifndef POINT_H #define POINT_H class Point { private: double x; double y; подробнее

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

Задачка на explicit - C++

20.05.2012, 21:20. Просмотров 305. Ответов 0
Метки (Все метки)

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
//Point.h
#ifndef POINT_H
#define POINT_H
#include <iostream>
#include <string>
 
using std::ostream;
 
class Point 
{
private:
    double x; 
    double y;
 
public:
    
        // defualt constructors and constructors 
 
    Point();
    Point(double xval, double yval);
    Point (double xnew);
    virtual ~Point()
    {}; 
 
    
    
 
    //  modificators
void    X (double xval); 
void    Y (double yval);
double X();
double Y(); 
 
    // other method 
    void ToString();    
};
 
#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
//main.cpp
 
#include "Point.h"
#include <iostream>
#include <string>
#include <stdio.h>
 
using namespace std; 
 
int main ()
{
 
    double x1, y1,x2 , y2;
        //;
 
cout << "input X and for first point : " <<endl; 
cout << "X :" ;
cin >> x1 ;
cout <<  endl; 
cout << "Y :" ;
cin >> y1;
 
cout << "input X and for second point : " <<endl; 
cout << "X :" ;
cin >> x2 ;
cout <<  endl; 
cout << "Y :" ;
cin >> y2;
 
 
Point spo1(0,0);
Point spo2(0,0);
 
Point p(1.0,1.0);
 
Point p(1.0, 1.0);
if (p==1.0) cout<<"Equal!"<<endl;
else cout<<"Not equal"<<endl;
 
 
 
 //x2 = 511;
 spo1.X(x1);
 spo1.Y(y1);
 spo2.X(y2);
 spo2.Y(x2);
 
 
 
 
spo1.ToString();
spo2.ToString();
 
cout << "now will be magic "  << endl;
 
 
 
cout << endl;
system ("pause");
 
}
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
//Point.cpp
 
#include "Point.h"
#include <iostream>
#include <string>
#include <stdio.h>
 
using namespace std; 
 
Point::Point():x(0),y(0)
    {
    };
 
Point::Point(double xval, double yval)
    {
    x = xval; 
    y = yval;
    };  
 
Point::Point(double xnew, double ynew )
    {
    x = xnew; 
    y = ynew;
    };  
 
void Point::X(double xval)
{
    x = xval ; 
}
 
void Point::Y(double yval)
{
    y = yval;
}
 
double Point::X()
{
 
    return x; 
}
 
double Point::Y()
{
    return y; 
}
 
 
 
void Point::ToString()
{
    cout << "(" << X() << "," << Y() << ")" << endl;
}
Условие:
Exercise 3: Constructors as conversion operator

In this exercise we are going to do a little experiment. First add to the Point class a constructor that accepts one double as an argument. The implementation should set both the x- and y-coordinate to this value.

Next try the following code in the test program:
Code (cpp):
Point p(1.0, 1.0);
if (p==1.0) cout<<"Equal!"<<endl;
else cout<<"Not equal"<<endl;
Will this code compile and can you explain why?

It turns out that the Point constructor with the single double argument is implicitly used to convert the number in the if statement to a Point object. Thus constructors are used as implicit conversion operators.

To prevent the usage of constructors are implicit conversion operators, declare the constructor as explicit:
explicit Point(double value);

Now try to compile the program again and you will see that now the if statement gives a compiler error. You can still use the constructor as conversion operator but then explicitly:
if (p==(Point)1.0) cout<<"Equal!"<<endl;


Вообщем проблема у меня в том, что в задаче подразумевается что
после добавление этой строки
C++
1
2
3
Point p(1.0, 1.0);
if (p==1.0) cout<<"Equal!"<<endl;
else cout<<"Not equal"<<endl;
все будет нормально компелитсья в начале, а у меня компелятор ругается на (p==1.0) мож надо какую библиотеку добавить ? Помогите, пожалуйста, заранее спасибо большое!
фигурные скопку на cout не помогают пробовал...

Добавлено через 9 минут
извиняюсь все я нашел там по заданию из предыдущего примера мне надо было внедрить
bool operator == (const Point& p) const; // Equally compare operator.

поэтому и не компилиться... еще раз приношу свои извинения
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru