Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
lerka1996
2 / 2 / 0
Регистрация: 04.03.2015
Сообщений: 76
#1

Реализовать функцию, сравнивающую указатели - C++

14.10.2015, 22:41. Просмотров 1199. Ответов 5
Метки нет (Все метки)

реализовать функцию, которая принимает на вход два указателя на базовый класс Expression, и возвращает true, если оба указателя указывают на самом деле на объекты одного и того же класса, и false в противном случае (т.е. если оба указателя указывают на BinaryOperation, то возвращается true, а если один из них указывает на Number, а второй на BinaryOperation, то false).
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.10.2015, 22:41
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Реализовать функцию, сравнивающую указатели (C++):

Написать функцию, сравнивающую 2 строки - C++
Ваша задача написать функцию BOOL сравнить (символ * s1, Int size1, символ * S2, Int size2), который сравнивает две строки. Вход ...

Разработать функцию, сравнивающую две строки - C++
Всем привет. Возникла у меня проблема, т.к. я дуб. Задание:Разработайте функцию, которая сравнивает две строки, пропуская при этом все...

В функцию с переменным числом параметроы передать указатели на функцию - C++
Добрый вечер. По заданию нужно в функцию с переменным числом параметров передать имя функций, которые нужно вызвать. Долго думала,как имея...

Указатели на функцию - C++
Используя указатели на функцию вычислить значение функции в точке х в соответствии с выбором функции пользователем. При невозможности...

указатели на функцию - C++
Доброго времени суток! Вот читал про указатели на функцию, и столкнулся с такой проблемой... Допустим, есть такой код: #include...

указатели на функцию - C++
помогите пожалуйста решить k!/(1/2+1/3+...+1/(k+1)) используя указатели на функцию вот до чего я дошла #include "stdafx.h" #include...

5
ture
443 / 336 / 127
Регистрация: 27.11.2014
Сообщений: 1,043
15.10.2015, 11:04 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Значит. Слизал я это где-то в инете. Идея в том, что бы сравнить указатели на таблицы виртуальных методов, которые у каждого (про папа, папа, сына, внучка) свои.
C++
1
2
3
4
5
bool check_equals(Expression const *left, Expression const *right)
{
    
    return ((void(*(*(&)[2]))(const Expression&))left)[0][0] == ((void(*(*(&)[2]))(const Expression&))right)[0][0];
}
Я не понимаю, что написал, но это валидно.
0
nmcf
6207 / 5518 / 1932
Регистрация: 14.04.2014
Сообщений: 23,155
15.10.2015, 11:23 #3
Цитата Сообщение от ture Посмотреть сообщение
но это валидно
Для какого-то отдельно взятого случая. Нет гарантии, что будет везде работать.

Добавлено через 7 минут
C++
1
2
3
4
bool check_equals(Expression *left, Expression *right)
{
    return (dynamic_cast<Number *>(left) != NULL && dynamic_cast<Number *>(right) != NULL) || (dynamic_cast<BinaryOperation *>(left) != NULL && dynamic_cast<BinaryOperation *>(right) != NULL);
}
1
ture
443 / 336 / 127
Регистрация: 27.11.2014
Сообщений: 1,043
15.10.2015, 11:27 #4
nmcf, вот конкретно сейчас препод на доске разбирает код домашки "решить квадратное уравнение"... конечно я не понимаю, что делает dynamic_cast<тип *>
0
nmcf
15.10.2015, 11:31
  #5

Не по теме:

ture, ты школьник, что ли? Ну книжку почитай про dynamic_cast.

0
ture
443 / 336 / 127
Регистрация: 27.11.2014
Сообщений: 1,043
15.10.2015, 14:22 #6
Ну, да
0
15.10.2015, 14:22
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.10.2015, 14:22
Привет! Вот еще темы с ответами:

Указатели на функцию - C++
1. arcsin(x^3) bool arcs(double *x) { if (*x**x**x&lt;=1 &amp;&amp; *x**x**x&gt;=-1) {*x=asin(*x**x**x); return true;} } правильно я...

Указатели на функцию, операции .* и ->* - C++
Закомментируйте пожалуйста код в тех местах где пометил , что то запутался. class A { public: void f() { ...

Ссылки и указатели на функцию - C++
Если передавать значение в функцию через указатель и ссылку,то в обоих случаях передаётся адрес,а не значение? И ещё: int *...

Передача в функцию через указатели - C++
Компилятор говорит, что что-то не так с передачей max и min. Что? #include &lt;stdio.h&gt; #include &lt;iostream&gt; #include &lt;string.h&gt; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru