C++ преобразование классов
zBoy Писатель
Пол:
Зарегистрирован: 29.01.2007
Сообщения: 492
Статус: Offline
Есть некоторое объявление вида
class A
{
...
A(B tmp)
}
class B
{
...
B(A tmp)
}
На первую попытку преобразования класса B в А компилятор ругается. На вторую - нет. Дело видимо в том, что класс объявлен выше.
Скажите, как правильно осуществить преобразование между этими классами?
Добавлено спустя 2 часа 39 минут 31 секунду:
Нда. Можно просто предварительно объявить классы вида
class A;
class B;
тогда всё работает. |
Slin Заслуженный писатель
Пол:
Зарегистрирован: 17.12.2004
Сообщения: 1869
Статус: Offline
а причем тут преобразование? |
zBoy Писатель
Пол:
Зарегистрирован: 29.01.2007
Сообщения: 492
Статус: Offline
Неявное приведение типа А к типу Б и наоборот. |
Slin Заслуженный писатель
Пол:
Зарегистрирован: 17.12.2004
Сообщения: 1869
Статус: Offline
это понятно
Причем тут преобразование, если ошибка была в том, что класс не был известен?
Добавлено спустя 55 секунд:
Судя по коду. Необходимо будет явное преобразование. |
zBoy Писатель
Пол:
Зарегистрирован: 29.01.2007
Сообщения: 492
Статус: Offline
Slin
Класс можно объявлять без его предварительного объявления. Т.е. если без такого объявления написать 2 класс с методом приведения, а 1 без метода - это будет вполне корректно. Зачем вам тут явное преобразование? |
Slin Заслуженный писатель
Пол:
Зарегистрирован: 17.12.2004
Сообщения: 1869
Статус: Offline
Мне ничего не надо.
zBoy писал(а): Скажите, как правильно осуществить преобразование между этими классами? |
zBoy Писатель
Пол:
Зарегистрирован: 29.01.2007
Сообщения: 492
Статус: Offline
zBoy
Вы пишете, что необходимо явное преобразование. Зачем здесь явное преобразование? Объясните. |
Slin Заслуженный писатель
Пол:
Зарегистрирован: 17.12.2004
Сообщения: 1869
Статус: Offline
Простите, ошибся слегка. Давно не программирвоал С++. Да уж и не буду. |
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете вкладывать файлы Вы можете скачивать файлы
|