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

Вопрос по наследованию - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Проверьте задачу правильно решена ли http://www.cyberforum.ru/cpp-beginners/thread380545.html
Вопрос Определить минимальный и максимальный элементы, вычислить их разность. Задача моя #include <stdafx.h> #include <iostream> #include <math.h> int main () { setlocale(0,"Rus"); int n,i,x, y,max=-32768,min=32767;
C++ Найти сумму элементов первого столбца без одного последнего элемента, сумму элементов второго столбца без двух последних... Здравствуйте, форумчане! У меня вот такая вот задачка: Задан двумерный массив. Найти сумму элементов первого столбца без одного последнего элемента, сумму элементов второго столбца без двух последних, сумму элементов третьего столбца без трех последних и т. д. Последний столбец не обрабатывается. Среди найденных сумм найти максимальную. Я сделал всю задачу, кроме максимального значения среди... http://www.cyberforum.ru/cpp-beginners/thread380518.html
C++ предлагаю людям класс "каждому потоку- своё окно" для тестирования многопоточных приложений.
Друзья! То есть если вы разрабатывает многопоточные приложения и закалебались смотреть, что тот или иной поток выводит, то этот класс для вас. Использовать его просто. Подключаете хидер и пишете: cout__<< "что-то"; и видите, что появилось окно, глде написано "что-то" Если создадите ДРУГОЙ поток и напишите там: cout__<< "еще что-то"; То и увидите другое окно с еще чем-то. Вот так и...
C++ Центр графа
Дана матрица смежности. Найти максимальное расстояние в графе. Пол дня уже мучаюсь, искал в гугле, сам пытался, но ничего не получается... просто тупик... Код вылаживать не буду, так как он не правильный. Просто расскажу, как я хочу сделать. Беру первую вершину, и делаю ее текущей. Если существует ребро между текущей и другой вершиной, делаю ее текущей и иду дальше. При этом считаю все...
C++ задача со строками http://www.cyberforum.ru/cpp-beginners/thread380453.html
пожалуйста, помогите. Нужно написать программу , которая определит длину введенной строки L, и, если L>10, то удаляются все цифры. я так понял, что в строке должны быть и цифры и буквы
C++ Перехват запросов Здравствуйте Форумчане, у меня возникла проблема, я хочу сделать что-то вроде веб-логгера который будет перехватывать запросы и т.д. Не подскажите ли Вы мне как это можно реализовать. Заранее спасибо. подробнее

Показать сообщение отдельно
Chelioss
179 / 179 / 4
Регистрация: 08.01.2011
Сообщений: 1,131
09.11.2011, 18:15     Вопрос по наследованию
Вот пример.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
 
class Base 
{
public:
    void fun() { std::cout << "class Base\n"; };
};
 
class Derived: public Base
{
    void fun() { std::cout << "class Derived\n"; };
};
 
int main()
{
    Base *basePtr = new Derived;
    basePtr->fun(); // class Base
    system( "pause" );
    return 0;
}
Помечу вызывается функция класса Base? Потому что тип указателя - Base. Логично? Логично и это так.
А что если мы хотим вызвать функцию класса Derived?
Тогда добавляем спецификатор virtual для функции fun() в классе Base.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
 
class Base 
{
public:
    virtual void fun() { std::cout << "class Base\n"; };
};
 
class Derived: public Base
{
    void fun() { std::cout << "class Derived\n"; };
};
 
int main()
{
    Base *basePtr = new Derived;
    basePtr->fun(); // class Derived
    system( "pause" );
    return 0;
}
Тут надо заметить, что если функция fun класса Base является виртуальной, то по умолчанию функция fun класса Derived тоже станет виртуальной( при наследовании, конечно ), а поэтому для наглядности можно написать так( это тоже самое, что и выше написано):
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
 
class Base 
{
public:
    virtual void fun() { std::cout << "class Base\n"; };
};
 
class Derived: public Base
{
    virtual void fun() { std::cout << "class Derived\n"; };
};
 
int main()
{
    Base *basePtr = new Derived;
    basePtr->fun(); // class Derived
    system( "pause" );
    return 0;
}
 
Текущее время: 19:14. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru