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

Полиморфизм, дружественные функции - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Шаблон функции не работает http://www.cyberforum.ru/cpp-beginners/thread920843.html
В чем я допустил ошибку? Почему шаблон функции не работает? #include <iostream> using namespace std; template < typename O > O max( O number1, O number2 ) { O maxValue = number1; if ( number 2 > maxValue ) maxValue = number2;
C++ Прикол с указателями взял пример с http://www.cplusplus.com/reference/algorithm/find/, немного поэксперементировал и наткнулся на необъяснимый факт) Смотрим: #include <iostream> // std::cout #include <algorithm> // std::find #include <vector> // std::vector int main () { int *p1, *p2; // int p, *p1, *p2; int myints = { 10, 20, 30 ,40 }; p1 = std::find (myints,myints+4,30); http://www.cyberforum.ru/cpp-beginners/thread920838.html
C++ Нужна помошь:выделение в тексте слов с заданной буквой
Необходима помощь в реализации одной задачи:Нужно вывести текст на экран из файла, и по нажатию произвольной клавиши поочередно выделяет в тексте слова с заданной буквой (вводится с клавиатуры); выводит на экран дисплея ещё раз те слова, в которых нет заданной буквы.
Быстрый поиск совершенных чисел C++
Чтобы легко можно было отсылать вопрошающих по этому вопросу, создаю новую тему. Напомню, что Совершенное число — натуральное число, равное сумме всех своих собственных делителей (т. е. всех положительных делителей, отличных от самого́ числа). Доказано, что все четные совершенные числа имеют вид 2^{p-1}(2^p-1), где p и 2^p-1 простые. Нечётных совершенных чисел до сих пор не обнаружено, однако...
C++ bool функция, нужен разбор http://www.cyberforum.ru/cpp-beginners/thread920795.html
bool not_url_char(char c) { static const string url_char="~,./?!@#$%^&*()_-+=;'"; return !(isalnum(c)||find(url_char.begin(), url_char.end(), c)!=url_char.end()); } Данная функция должна возвратить true, если переданный символ не может содержаться в URL-адресе. Не могу понять, что значит строка: return !(isalnum(c)||find(url_char.begin(), url_char.end(), c)!=url_char.end()); В...
C++ Массив: Как скопировать двумерный массив в другой массив? Как скопировать двумерный массив в другой массив? подробнее

Показать сообщение отдельно
Мимино
180 / 151 / 5
Регистрация: 22.05.2013
Сообщений: 435
Записей в блоге: 1
10.07.2013, 14:48     Полиморфизм, дружественные функции
Цитата Сообщение от Hugo_Boss Посмотреть сообщение
А можно, пожалуйста, объяснить, почему такое невозможно? И какая нужна перегрузка, чтобы заработало?
Спасибо.
C++
1
(Base &base, int n)
Эта перегрузка может складывать объект класса Base с объектом int. Когда вы вызываете der1 + der2, это равносильно:
C++
1
der1.operator+(der2)
Чтобы заработало:
1. Убрать дружественность и сделать функцию обычной функцией - элементом (конечно, если у Вас не будет записей типа int + YourClassObj).
2. Решить что и с чем Вы собираетесь складывать/
3. Описать алгоритм сложения

Добавлено через 9 минут
Вот тут могу ошибаться, поэтому поправьте меня люди добрые
1. Дружественность не наследуется. Для каждого производного класса нужно будет переопределять дружественную функцию.
2. При чем тут полиморфизм? "Загнав" все методы в базовый класс Вы не сможете вызвать метод производного класса через указатель базового класса, а ровно наоборот.

Вопрос. Чего конкретно вы хотите добиться? Полиморфизм или наследование методов базового класса?
 
Текущее время: 18:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru