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

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

Войти
Регистрация
Восстановить пароль
 
Gelium3
0 / 0 / 0
Регистрация: 07.02.2014
Сообщений: 4
#1

Кто глючит, я или компайлер? Visual Studio 2008 (9.0) - C++

07.02.2014, 21:26. Просмотров 241. Ответов 3
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
class A {int a;};
class B : public A {int b;};
class C : public A {int c;};
void f()
{
    int k = 1;
    A* a = k ? new B : new C;
}
Результат компиляции:
error C2446: ':' : no conversion from 'C *' to 'B *'
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.02.2014, 21:26
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Кто глючит, я или компайлер? Visual Studio 2008 (9.0) (C++):

Зависание или ошибка при компиляции microsoft Visual Studio 2008 - C++
microsoft Visual Studio 2008 писал на C++ Все раньше было хорошо. Возникла такая проблема. При компиляции программы не создается *.exe...

Написать программу. Задания нужно выполнять на языке Visual C++ в среде Microsoft Visual Studio 2008 - C++
Можете написать программу? Задание по номером 3.24 (2 рисунок).

Visual Studio Team Foundation Serverl или Visual Studio Professional - C++
Visual Studio Team Foundation Server 2010 Кто пользовался Visual Studio Team Foundation Server 2010, и чем она отличаеться от Visual...

несовместимость visual c++ 6.0 и visual studio 2008 - C++
почему правильно написанная программа в visual c++ 6.0 не работает в visual studio 2008 , а именно #include <iostream> using namespace...

несовместимость visual c++ 6.0 и visual studio 2008 - C++
почему правильно гаписанная программа в visual c++ 6.0 не работает в visual studio 2008 , а именно #include <iostream> ...

Visual studio 2008 C++ - C++
Вычислите сумму элементов верхнего правого треугольника матрицы и количество элементов в нем. матрица размером 5x5

3
DrOffset
7316 / 4416 / 1000
Регистрация: 30.01.2014
Сообщений: 7,253
07.02.2014, 21:33 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Gelium3 Посмотреть сообщение
error C2446: ':' : no conversion from 'C *' to 'B *'
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
Типы в тернарном операторе должны быть приводимы между собой, а не к чему-то третьему.
Вот так будет работать:
C++
1
2
    int k = 1;
    A * a = k ? new B : new A;
1
Nick Alte
Эксперт С++
1639 / 1011 / 119
Регистрация: 27.09.2009
Сообщений: 1,945
Завершенные тесты: 1
07.02.2014, 21:38 #3
Или же типы можно привести явно:
C++
1
A* a = k ? static_cast<A*>(new B) : static_cast<A*>(new C);
1
Gelium3
0 / 0 / 0
Регистрация: 07.02.2014
Сообщений: 4
07.02.2014, 21:47  [ТС] #4
Спасибо! Действительно, необходима кроссприводимость, дабы результат подходил всегда, а не в зависимости от использования. Таки я глючил, это успокаивает.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.02.2014, 21:47
Привет! Вот еще темы с ответами:

Visual Studio 2008 - C++
Здравствуйте.У меня студия 2010 (экспресс-версия) поставилась,но при запуске уже когда ввел уже код(я уже активировал когда-то,но тогда 7...

Какую среду программирования лучше выбрать для обучения языку C++ ? Visual Studio,Visual Basic или Visual C++? - C++
И напишите,чем рекомендуемая вами среда программирования лучше других? Насколько я понял из Википедии они все поддерживают язык...

Вопрос по Visual Studio 2008 - C++
Запустил программку в 11 утра сегодня. До сих пор выполняется. Надо с работы уходить домой. Думаю прийти в понедельник и посмотреть за...

Win32 in Visual Studio 2008 - C++
Я в С++ полный ноль, но хотелось бы создать простое приложение с интерфейсом(Button, Label, Edit...). Помогите советами и если не трудно...


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

Или воспользуйтесь поиском по форуму:
4
Yandex
Объявления
07.02.2014, 21:47
Ответ Создать тему
Опции темы

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