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

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

Войти
Регистрация
Восстановить пароль
 
PakistanCode
5 / 5 / 1
Регистрация: 05.02.2013
Сообщений: 197
#1

приведение класса - C++

21.08.2013, 14:32. Просмотров 384. Ответов 3
Метки нет (Все метки)

Подскажите пожалуйста как грамотно сделать:

Есть класс:
C++
1
2
3
4
class Base
{
virtual ~Base()=0;
}
И два наследника:
C++
1
2
3
4
class Wall:public Base
{////}
class Empty:public Base
{///}
Имеется такая строка:
C++
1
Base*** map
В цикле прохожу карту
C++
1
2
3
4
5
6
7
8
for(///)
{
for(///)
{
    if(map[i][j] указатель на Wall)
        map[i][j] = указатель на Empty
}
}
Т.е. нужно чтобы при определённых условиях (не как в примере) я мог менять тип указателя в матрице. Спасибо

Добавлено через 18 минут
мб можно сделать что-то типа такого:
map[i][j] = new Empty();

Вот только вопрос не будет ли много памяти это есть
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.08.2013, 14:32
Я подобрал для вас темы с готовыми решениями и ответами на вопрос приведение класса (C++):

Перегрузить приведение типов для шаблонного класса - C++
Хай. Имеется template <class T> class fraction { public: T top; T bot;

Полиморфизм, наследование и приведение экземпляров класса одного к другому - C++
Есть некий класс со своими переменными,его экземпляр занимает какое-то количество памяти. Интерфейс выглядит примерно так: /*...

Приведение типов - C++
Есть задача создать список с объектами у которых разные классы, но один базовый предок. Потом нужно перебрать список и если объект одного...

Приведение к структуре - C++
Не могу понять как привести, к примеру void* переменную, к структуре. И так же интересует как использовать приведённые перменный, дабы их...

Приведение типов - C++
В паскале можно привести типы: type ts = 0..9; chislo = array of ts; Как это сделать на С++?

Приведение типов - C++
Добрый вечер! Реализовываю явное и не явное приведение типов. Есть два класса, сепаративных, A и B. Реализацию явного преобразования...

3
Jupiter
Каратель
Эксперт С++
6568 / 3989 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
21.08.2013, 14:43 #2
PakistanCode, такой код дейсвительно пакистанский
Почитай про визитера, пример на плюсах там есть.
0
Kastaneda
Jesus loves me
Эксперт С++
4749 / 2953 / 242
Регистрация: 12.12.2009
Сообщений: 7,491
Записей в блоге: 2
Завершенные тесты: 1
22.08.2013, 10:16 #3
Цитата Сообщение от Jupiter Посмотреть сообщение
Почитай про визитера, пример на плюсах там есть.
Там на странице интересный пример использования синтаксиса С++
Первое упоминания о Visitor появляется здесь (без предварительного объявления)
C++
1
2
3
4
5
6
class Element
{
public:
    //добавьте метод в основной класс
    virtual void accept(class Visitor &v) = 0;
};
далее Visitor используется уже так
C++
1
2
3
4
5
6
7
8
9
class This: public Element
{
public:
    /*virtual*/void accept(Visitor &v);
    string thiss()
    {
        return "This";
    }
};
и только где-то ниже уже определен сам Visitor. Я честно говоря удивился такому, но оно работает.

Не по теме:

Когда наступает момент, когда ты начинаешь думать, что знаешь С++, постоянно где-нибудь натыкаешься на подообное "чудо"

0
gray_fox
22.08.2013, 10:58     приведение класса
  #4

Не по теме:

Цитата Сообщение от Kastaneda Посмотреть сообщение
Там на странице интересный пример использования синтаксиса С++
Видел использовали такое в примере с pimpl:
C++
1
2
3
4
class Class {
 
   std::unique_ptr<class Impl> pImpl;
};
удобно )

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.08.2013, 10:58
Привет! Вот еще темы с ответами:

Приведение к типу - C++
В чем разница? static_cast&lt;int&gt;(a); и (int)a

приведение типа - C++
Здравствуйте. у меня такой вопрос. как можно в c++ 2008 поменять тип. мне нужно char перевести в int, я пробовала char a; int y; y=(int)a;...

Приведение типов - C++
Чем отличается type(x) от (type) x?

Приведение типов - C++
Есть код вызова метода: obj.func(char a, char b) сам метод: void func(char a, char b) { int i = (int)a, int j = (int)b; В...


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

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

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