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

Перегрузка операций - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Сортировка массива c++ std :: sort() http://www.cyberforum.ru/cpp-beginners/thread1499271.html
Дан двумерный массив символов char M, надо отсортировать его при помощи std :: sort(), построчно, т.е. допустим было 00011 11111 00000 00000 11111 А стало 00000 00000 00011
C++ Как отправить почту через Telnet? Не получается оправка почты через telnet. Пробую mail, yandex не работает. Возможно ли отправить? http://www.cyberforum.ru/cpp-beginners/thread1499247.html
C++ Запомнить, какое число меньше 437, записать его в переменную и больше не изменять. Найти ошибку
Добрый день, решал задачу, нужно было сделать так, чтобы программа запомнила, какое число меньше 437 и записала его в переменную number, а также, чтобы потом уже не перезаписывала его, но почему то данные в функцию посылаются некорректно, где допущена ошибка? Код: #include <iostream> using namespace std; int check(int a, int b) {
C++ Код, который проверяет есть ли в регистре идентификатор GUID - как он работает?
Есть код который как бы проверяет есть ли в регистре идентификатор GUID или нет, вот он: hr=HRESULT; CLSID clsid; if ((hr = ::CLSIDFromProgID(L"MyComDll", &clsid)) != NOERROR) { TRACE("unable to find Program ID -- error = %x\n", hr); return; } Не ясно как он работает, он не просто проверяет, он в переменную GUID clsid, по ссылке передает GUID зарегистрированного...
C++ Возврат по ссылке http://www.cyberforum.ru/cpp-beginners/thread1499161.html
Приветствую всех! Есть пример из книги Р. Лафоре "Объекто-ориентированное программирование в C++": #include <iostream> using namespace std; #include <process.h> const int LIMIT = 100; //---------------------------------------------------------------------------// //Определение класса Safearray
C++ Блинная сортировка массива, не сортируется последний элемент Товарищи офицеры. Прошу посмотреть мой код блинной сортировки для одномерного массива. Дело в том что он не сортирует последний элемент. Что ни делал-все напрастно. #include <iostream> #include<windows.h> #include <conio.h> #include <ctime> using namespace std; int main() {//pancakes //srand(time(0)); const int n=10; int arr,max=0,a=0; подробнее

Показать сообщение отдельно
Nishen
 Аватар для Nishen
175 / 81 / 30
Регистрация: 26.02.2015
Сообщений: 473
15.07.2015, 15:23     Перегрузка операций
Цитата из Р. Лафоре "Объекто-ориентированное программирование в C++":
Объект, стоящий с левой стороны операции ... вызывает функцию оператора. Объект, стоящий справа от знака операции, должен быть передан в функцию в качестве аргумента.
Далее идет пример:
Кликните здесь для просмотра всего текста
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
#include <iostream>
using namespace std;
//---------------------------------------------------------------------------//
//Определение класса Distance
//---------------------------------------------------------------------------//
class Distance{
    private:
        const float MTF;
        int feet;
        float inches;
    public:
        Distance() : feet(0), inches(0.0), MTF(3.280833F)
        {}
        Distance(float meters) : MTF(3.280833F){
            float fltfeet = MTF * meters;
            feet = static_cast<int>(fltfeet);
            inches = 12 * (fltfeet - feet);
        }
        Distance(int ft, float in) : feet(ft), inches(in), MTF(3.280833F)
        {}
        void getDist(){
            cout << "\nВведите футы: "; cin >> feet;
            cout << "Введите дюймы: "; cin >> inches;
        }
        void showDist() const{
            cout << feet << "\'-" << inches << '\"';
        }
        operator float() const{
            float fracfeet = inches / 12;
            fracfeet += static_cast<float>(feet);
            return fracfeet / MTF;
        }
};
//-----------------------------------------------------------------------------
int main(){
    setlocale(LC_ALL, "Russian");
    float mtrs;
    Distance dist1 = 2.35F;
    cout << "\ndist1 = "; dist1.showDist();
 
    mtrs = static_cast<float>(dist1);
    
    cout << "\ndist1 = " << mtrs << " meters\n";
 
    Distance dist2(5, 10.25);
 
    mtrs = dist2;
    cout << "\ndist2 = " << mtrs << " meters\n";
 
    system("PAUSE");
    return 0;
}


Собственно, вопрос заключается в следующем. В данном примере есть строка
C++
1
mtrs = dist2;
Что в этой строке вызывает функцию оператора перевода в тип float? Знак равно или переменная mtrs?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 13:14. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru