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

Перегрузка, дружественный функции - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Переписать с PHP на Cи http://www.cyberforum.ru/cpp-beginners/thread445643.html
помогите переписать с php на C++ class RC4 { var $s = array(); var $x; var $y; function key( $key ) {
C++ матрица и количество точек помогите пожалуйста решить 2 задачи: 1) дана матрица размером m*n. найти строку в которой элементы чередуются знаками. 2) Вычислить k - количество точек с целочисленными координатами, попадающих в круг с радиусом r (r>0) с центром в начале координат. http://www.cyberforum.ru/cpp-beginners/thread445642.html
C++ ассоциативный массив
мне нужно написать прграмму с динамическими шаблонными структурами, а именно с ассоциативным массивом, но что он из себя представляет, я что-то не совсем понимаю, я прочитала про него, вроде хранится пара, элемент и ключ, но чем ключ отличается от порядкового номера и какого типа должен он быть, не совсем, понятно. Не могли бы вы написать малюсенью программу на аасоциативный массив,, чтоб я...
C++ [C++] Запросить у пользователя массив из 7 строк и вывести на экран те, в которых есть буква y
Помогите пожалуйста Запросить у пользователя массив из 7 строк и вывести на экран те, в которых есть буква y нужно решение в Visual C++
C++ Не полностью работает прога http://www.cyberforum.ru/cpp-beginners/thread445619.html
#include <iostream> #include <conio.h> using namespace std; void main() { struct form { char lastname;
C++ Ожидание нажатия клавиши А подскажите пожалуйста, как в С++ сделать так, чтобы программа, написанная в консольных приложениях, продолжала свою работу только после нажатия клавиши Enter??? Ну например работает-работает прога,вывела что-то на экран, а потом пишет: cout<<"Для продолжения работы программы нажмите Enter!"; .......................... Вот как это реализовать в программе??? что должно быть написано вместо... подробнее

Показать сообщение отдельно
stawerfar
 Аватар для stawerfar
141 / 55 / 4
Регистрация: 14.12.2010
Сообщений: 347
Записей в блоге: 1
13.02.2012, 19:40     Перегрузка, дружественный функции
Всем привет сразу к делу. Вроде бы всё просто , перегрузка ... Просче показать чем объяснить. Ниже не замысловатый код, перегружены арефметические операции. И почему-то не работает ситуация когда я объект класса пытаюсь разделить на вещественное число. Ошибка во время компиляции
C++
1
Ошибка  1   error C2666: operator /: для 2 перегрузок есть подобные преобразования  d:\project_vs 2010\c++\leassons on lafore cpp file\leassons 11_6.cpp    54  1   Solutions for Lafore all leassons_
Сколько я не искал подобных перегрузок я не нашёл. В чём дело??
Вот минимальный код
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
#include<iostream>
 
class bMoney
{
private:
    long double money;//денежная переменная
public:
    bMoney():money(0.0)
    {}
    //явный конструктор преобназования long double in bMoney
    bMoney(long double);
    //вывод на экран
    void getmoney(void);
    operator long double(void);
    //дружественные функции
    friend bMoney operator/(const bMoney& val1,const bMoney& val2); 
    friend bMoney operator*(const bMoney& val1,const bMoney& val2);
};
//конструктор преобназования long double in bMoney
bMoney::bMoney(long double ldb_val)
{
    money= (ldb_val);
}
//перегрузка оператора преобразования из  bMoney in long double 
bMoney:: operator long double(void)
{
    long double ldb_result=(money);
    return (ldb_result);
}
void bMoney:: getmoney(void)
{std::cout<<money<<std::endl;}
/***********************************************************************************************/
 
int main(void)
{
    const int MAX_for_bMoney=2;
    class ::bMoney bMmas[MAX_for_bMoney],bM_rerult;
    char chquestion=NULL;
 
        chquestion=NULL;
 
 
            std::cout<<"//умножение на вещественное число"<<std::endl;
            bM_rerult=bMmas[0]*bMmas[1];
            //вывод на экран произведения
        //диление на вещественное число
            std::cout<<"//диление на вещественное число"<<std::endl;
            bM_rerult=bMmas[0]/bMmas[1];
            //вывод на экран частного
            bM_rerult.getmoney();
        //диление среди обьектов класса bMoney
            std::cout<<"//диление среди обьектов класса bMoney"<<std::endl;
/*ОШИБКА*/  bM_rerult=bMoney(bMmas[0]/43.55);
            //вывод на экран частного
            bM_rerult.getmoney();       
        //проверка на вводимый символ ответа на продолжение цикла
 
        
 
    system("pause");
return 0;
}
 
//==============================================================================================================
 
bMoney operator*(const bMoney& val1,const bMoney& val2)
{return bMoney(val1.money*val2.money);}
 
//==============================================================================================================
 
bMoney operator/(const bMoney& val1,const bMoney& val2)
{return bMoney(val1.money/val2.money);}
 
//==============================================================================================================
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 19:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru