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

Есть два перегруженныйх оператора *, но компилятор не может выбрать нужный, почему? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Сортировка по убыванию. Чтение из файла http://www.cyberforum.ru/cpp-beginners/thread614368.html
Помогите, пожалуйста, отсортировать содержимое файла.. Т.е. Имеется файл в 10 строк Popov.A.N. m 3.8 k Litvinov.A.S. m 3.4 i Fomin.G.E. m 4.5 k Chernov.A.A. m 4.8 k Korolenko.A.F. j 4.6 i Obama.E.N. j 5 n Krasnov.A.A. m 4.2 k Finora.T.N. j 4.4 i
C++ C++ Учебный курс 2-е издание (Паоло Франка) Купил книгу "C++ Учебный курс 2-е издание" (Паоло Франка). В интернете в электронном виде прочитал несколько страниц 1-го издания. Там всё основано на примерах с дискеты. Беда в том, что во 2-м издании (который я купил) те же примеры с той же дискеты, а дискета (диск) НЕ прилагается. Есть у кого-нибудь эта дискета? Или дайте ссылку, где её можно скачать. В инете не нашёл. Добавлено через 11... http://www.cyberforum.ru/cpp-beginners/thread614360.html
C++ Матрицы - перегрузка оператора *
Здравствуйте, помогите пожалуйста. Имеется библиотека Matrixclass.h, необходимо в ней перегрузить оператор умножения. Как только я не пытался его реализовать, но выводит не понять что. Посоветуйте что-нибудь по этому поводу. Matrixclass.h #include <iostream> #include <stdlib.h> #include <time.h> // Srand, Randomize #include <math.h>
C++ Методы и классы
добрый день) код выдает ошибку "E2089 Identifier 'proc' cannot have a type qualifier". не могу понять в чем проблема. int main() { class myclass { int num; public: void proc(); }; void myclass::proc() {
C++ Бинарное дерево (отладка) http://www.cyberforum.ru/cpp-beginners/thread614332.html
Прога работает и всё запускает (здесь фрагмент), но, к сожалению, выводит некие символы и т.д. Где что надо поправить? struct prod { char FI; int tnum,date,sum; };
C++ Мышь да Клава Помогите написать программу, котороя считает каждое нажатие на клавиатуру и мышь. подробнее

Показать сообщение отдельно
kravam
быдлокодер
1691 / 878 / 44
Регистрация: 04.06.2008
Сообщений: 5,420

Есть два перегруженныйх оператора *, но компилятор не может выбрать нужный, почему? - C++

26.06.2012, 16:06. Просмотров 1235. Ответов 23
Метки (Все метки)

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
#include <stdio.h>
 
class klass {
public:
 klass() {}
 klass(int n) {}
 klass operator*(const klass &other){}
    
 //Сейчас всё компилится, но если расскоментить эту строку, то
 //компилиться не будет                                       
 
 //friend klass operator*(const int &chislo, klass &fr) {};   
    
 operator float () {};
};
 
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
int main () {
 klass h (7);
 klass h_ (5);
 klass h__ (h* h_);
 getchar ();
 return 0;
}
Такие вываливаются ошибки.

C++
1
2
3
4
In function 'int main()': 
[Warning] [enabled by default] 
klass klass::operator*(const klass&) 
klass operator*(const int&, klass&)
Тот есть вроде как компилятор не может выбрать между двумя операторами *. Но я бы на месте компилятора знал, что делать. У меня две переменых типа klass, h и h_, какие могу быть сомнения?
ВЫбирать надо
C++
1
klass operator*(const klass &other)
, никакими int в левой части и не пахнет

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=

Проблема почему-то исчезает если закомментить также
C++
1
operator float () {};
, но в реальном коде этот оператор НУЖЕН. Этот же код демонстрационный для задачи, упрощён для понимания поэтому кажется несколько надуманным. Спасибо, кто откликнется.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru