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

Научить метод принимать в качестве аргумента объект своего класса и дочерних классов - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Выход итератора за границы list http://www.cyberforum.ru/cpp-beginners/thread1778338.html
почему у меня падает программа, когда пытаюсь ввести отсортированные элементы в другой list ??? list<char>ch; list<char>rev; for (int i = 0; i < 20; i++) ch.push_back('A' + rand() % 26); list<char>::iterator p = ch.begin(); while (p != ch.end()) {
C++ Наилучший делитель Будем говорить, что число a лучше числа b, если сумма цифр a больше суммы цифр числа b, а в случае равенства сумм их цифр, если число a меньше числа b. Например, число 124 лучше числа 123, так как у первого из них сумма цифр равна семи, а у второго – шести. Также, число 3 лучше числа 111, так как у них равны суммы цифр, но первое из них меньше. Дано число n. Найдите такой его делитель (само... http://www.cyberforum.ru/cpp-beginners/thread1778315.html
C++ Вывести количество совершенных чисел в интервале [a, b]
Число назывется совершенным, если оно равно сумме своих собственных делителей. Собственными делителями имеются ввиду те делители числа, которые строго меньше него. Например, число 28 совершенно, так как 28 = 1 + 2 + 4 + 7 + 14. Единица не считается совершенным числом. Заданы числа a и b. Вывести количество совершенных чисел в интервале . Можете предполагать, что a < b, a > 0, b > 0.
Найти ошибку в коде (ideone, C++) C++
Код для поиска в глубину.Всего на графе 7 вершин(не считая 0) В айдиван работает,НО,,,откуда-то берет еще 8-ую и 9-ую вершины, которых вообще не должно быть. В чем может быть ошибка? Код прилагается: using namespace std; const int n = 8; int i, j; bool *visited = new bool; int graph =
C++ Бинарное дерево, добавить функции удаления и поиска узла http://www.cyberforum.ru/cpp-beginners/thread1778238.html
Помогите! нужно. Пытался сделать сам но не очень получается доделать функции: удаление узла поиск элемента возврат самой длинной ветви(распечатка ее элементов) #include<iostream> using namespace std; struct binariTreea{
C++ Нарисовать прямоугольник звездочками Нарисуйте следующие фигуры ******** ******** ******** ******** ******** ******** ******** ******** параметризовать длиной и шириной подробнее

Показать сообщение отдельно
Anglues113
0 / 0 / 0
Регистрация: 09.07.2016
Сообщений: 5
09.07.2016, 21:55     Научить метод принимать в качестве аргумента объект своего класса и дочерних классов
Цитата Сообщение от JackLas Посмотреть сообщение
Зачем & ?
Method (class & a) - это значит что вы передаете объект по ссылке и имеете дело с существующим объектом.
Mehod (class a) - будет сделана локальная копия объекта и её изменение не будет влиять на объект который был передан в этой функции.
А вообще наследники родительского класса приобретают все свойства и методы родительского класса. И объект производного класса можно смело передавать в метод который принимает ссылку на базовый класс.

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
#include <iostream>
 
using namespace std;
 
class A
{
    int x;
public:
    void Method(A & a, const int & i)
    {
        this->x = i;
        std::cout << this->x << std::endl;
    }
};
 
class B : public A
{
 
};
 
int main()
{
    A a;
    a.Method(a, 10);
    B b;
    b.Method(b, 20);
}

Так же можно сделать метод виртуальным и переопределить его в наследниках. Он станет полиморфным при вызове через указатель базового класса. Вариантов много все зависит от того что конкретно надо

Добавлено через 14 минут
Цитата Сообщение от Anglues113 Посмотреть сообщение
this->x = i;
В этом месте написать -
C++
1
 a.x = i;
и оно будет работать
 
Текущее время: 10:19. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru