Форум программистов, компьютерный форум 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++ Массив: Как скопировать двумерный массив в другой массив? Как скопировать двумерный массив в другой массив? подробнее

Показать сообщение отдельно
Tulosba
:)
Эксперт C++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
10.07.2013, 16:32     Полиморфизм, дружественные функции
Цитата Сообщение от Мимино Посмотреть сообщение
Дружественность не наследуется. Для каждого производного класса нужно будет переопределять дружественную функцию.
Можно достучаться через базовый класс:
Кликните здесь для просмотра всего текста
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
#include <iostream>
 
using namespace std;
 
class B;
void f( const B& b );
 
class B
{
    friend void f( const B& b );  
    int p = 42;    
    virtual int getP() const { return p; }
};
 
class D : public B
{
    virtual int getP() const { return p; }
    int p = 100500;
};
 
void f( const B& b )
{
    cout << b.getP() << endl;
    //cout << dynamic_cast<const D&>(b).getP() << endl; // так уже нельзя
}
 
int main() {
    B b;
    f( b );
    
    D d;
    f( d );
    
    return 0;
}
https://ideone.com/fHOIsh
 
Текущее время: 16:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru