Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
4 / 4 / 5
Регистрация: 25.08.2016
Сообщений: 44
1

Тернарный оператор и наследование

13.06.2018, 16:51. Показов 507. Ответов 2
Метки нет (Все метки)

Добрый день! Почему не компилируется этот код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class A{
};
 
class B :public A {
};
 
class C : public A {
};
 
int main()
{
  A* pa = (true ? new B : new C);
  return 0;
}
Вроде ведь должны же неявно приводится? И как лучше починить?
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.06.2018, 16:51
Ответы с готовыми решениями:

Тернарный оператор vs if/else
Зачем? Ведь, так элегантнее. Начало https://www.cyberforum.ru/cpp-beginners/thread718192.html

Тернарный оператор
Добрый день, как доказать, что нету тенарного оператора ? Я как понимаю, есть только тенарная...

Вложенный тернарный оператор
Здравствуйте! Нужно вывести кол-во корней квадратного уравнения в зависимости от дискриминанта,...

Альтернатива if (.) {.} (тернарный оператор)
блин запамятовал как это делается пишут вместо стандартной формы что то типа y < x : x = m...

2
495 / 320 / 185
Регистрация: 30.04.2017
Сообщений: 619
13.06.2018, 17:13 2
Стандарт с++ предписывает такое поведение.
Тернарный оператор требует, чтобы его второй и третий операнды имели один и тот же тип.
Если они имеют разные типы, то нужны static/dynamic ~_cast-ы.
<- автоперевод конечно впечатляет)

A* pa = true ? static_cast<A*>(new B()) :static_cast<A*>(new C());
0
4 / 4 / 5
Регистрация: 25.08.2016
Сообщений: 44
13.06.2018, 18:30  [ТС] 3
спасибо, и вроде хватает даже одного cast'a
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.06.2018, 18:30

Засунуть в тернарный оператор
Помогите засунуть выражение if ( (i &lt; 0 || j &lt; 0) || (i &gt;= ROW || j &gt;= COL) || (i == oi &amp;&amp; j ==...

Тернарный оператор: возврат значения
Приветствую. При компиляции ниже приведенного кода bool MyFunc() { bool flag = false; //...

Шахматы(заменить тернарный оператор) на if else
#include &lt;iostream&gt; #include &lt;Windows.h&gt; using namespace std; void main() { int h, w, i,...

Как работает тернарный оператор
Здравствуйте. Объясните, пожалуйста, что значит эта строка color = (color == 'W') ? 'B' : 'W';


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

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

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