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

Особенности передачи объекта в функцию - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Удалить из списка последний отрицательный элемент, если такой есть (линейные списки) http://www.cyberforum.ru/cpp-beginners/thread1636580.html
Помогите, пожалуйста. Нужно, написать программу, которая удаляет из списка последний отрицательный элемент, если такой есть.
C++ ОС Windows инициировала точку останова в программе Писал программу для нахождения минимального пути из точки start(Х) в точку finish(Y) путём обхода графа в ширину. Во время отладки программа работает исправно, но иногда без причины выдает исключение "ОС Windows инициировала точку останова в программе Это может быть вызвано повреждением кучи и указывает на ошибку в очередь.exe или в одной из загруженных им DLL." Опытным путём установил что вылет... http://www.cyberforum.ru/cpp-beginners/thread1636559.html
Найти и вывести на печать все нулевые элементы матрицы и указать в каких строках и столбцах они находятся C++
Парни, помогите с этим заданием.. "Написать программу, задающую матрицу А размером 4x4 с вещественными элементами, вводимыми с клавиатуры (следует вводить как положительные, так и отрицательные числа), и выполнить следующее задание." В моем варианте - "Найти и вывести на печать все нулевые элементы матрицы, а так же указать в каких строках и столбцах они находятся." Я нашел другой вариант -...
C++ Вычислить и вывести на экран в виде таблицы значения заданной функции f(x)
Добрый ночи, помогите решить два примера, никак не осилю их. 1. Вычислить и вывести на экран в виде таблицы значения заданной функции f(x) на заданном интервале с шагом dx (вводимым с клавиатуры (dx вводить в соответствии с условием 0.01 <= dx <= 0.1) Вариант функции x(-1/3+sin(3.6x)) xЄ 2. Для функции представленной ниже бесконечными рядами вычислить их приближенное значение с точностью...
C++ Switch case калькулятор http://www.cyberforum.ru/cpp-beginners/thread1636531.html
добрый вечер всем,в калькуляторе нужно найти процент вот мой код,где ошибка? #include <iostream> using namespace std; int main() { setlocale(LC_ALL,"Rus"); int a,b,c;
C++ Если максимальный элемент массива А больше минимального элемента массива В, поменять данные элементы местами Задача, вроде, не сложная, может есть у кого готовая такая? Мне её на разбор надо.. Помогите, пожалуйста. Именно целиком всё, по частям я нашла. Ввести массивы А(5,7) и В(6,3). Если максимальный элемент массива А больше минимального элемента массива В, поменять данные элементы местами. Вывести максимальный и минимальный элементы, номера строк и столбцов, в которых они находятся в исходном... подробнее

Показать сообщение отдельно
gru74ik
Модератор
Эксперт CЭксперт С++
3981 / 1728 / 193
Регистрация: 20.02.2013
Сообщений: 4,828
Записей в блоге: 21
12.01.2016, 07:01     Особенности передачи объекта в функцию
krazyd, в прототипе функции в качестве аргумента прописать родителя, а в вызове функции можно подставлять как родителя, так и наследника. Либо шаблонную функцию делать.

Пример по первому варианту
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
#include <iostream>
 
class Mammal
{
public:
    explicit Mammal(int breasts = 2) : m_breasts(breasts)
    {}
 
    void breathe()
    {
        std::cout << "I can breathe.\n";
    }
 
private:
    int m_breasts;
};
 
class Person : public Mammal
{
public:
    Person(int breasts, int legs, int hands) : Mammal(breasts)
    {
        m_legs = legs;
        m_hands = hands;
    }
 
    void run()
    {
        std::cout << "I can run.\n";
    }
 
private:
    int m_legs;
    int m_hands;
};
 
class Dolphin : public Mammal
{
public:
    Dolphin(int breasts, int fins) : Mammal(breasts)
    {
        m_fins = fins;
    }
 
    void swim()
    {
        std::cout << "I can swim.\n";
    }
 
private:
    int m_fins;
};
 
void func(Mammal & m)
{
    m.breathe();
}
 
int main()
{
    Mammal some_mammal;
    Person Lada(2,2,2);
    Dolphin Vera(2,4);
 
    func(some_mammal);
    func(Lada);
    func(Vera);
 
    return 0;
}


Пример по второму варианту
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
#include <iostream>
 
class Mammal
{
public:
    explicit Mammal(int breasts = 2) : m_breasts(breasts)
    {}
    void breathe()
    {
        std::cout << "I can breathe.\n";
    }
 
private:
    int m_breasts;
};
 
class Person : public Mammal
{
public:
    Person(int breasts, int legs, int hands) : Mammal(breasts)
    {
        m_legs = legs;
        m_hands = hands;
    }
 
    void run()
    {
        std::cout << "I can run.\n";
    }
 
private:
    int m_legs;
    int m_hands;
};
 
class Dolphin : public Mammal
{
public:
    Dolphin(int breasts, int fins) : Mammal(breasts)
    {
        m_fins = fins;
    }
 
    void swim()
    {
        std::cout << "I can swim.\n";
    }
 
private:
    int m_fins;
};
 
template <typename T>
void func(T & m)
{
    m.breathe();
}
 
int main()
{
    Mammal some_mammal;
    Person Lada(2,2,2);
    Dolphin Vera(2,4);
 
    func(some_mammal);
    func(Lada);
    func(Vera);
 
    return 0;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru