2015-05-17 3 views
-1

Я хочу подключить дочерний элемент в строке no->rodzic = tz; к указателю tz, который указывает на «родительский», но это две разные структуры. Можно ли поступать так, как я думаю? Моя ошибка является: cannot convert... и т.д. присваиваниеКак объявить дочерний указатель с родителем из разных структур в C++

struct lotwarta { 
    int wartosc,x,y; 
    lotwarta *parent; 
}; 
struct lzamknieta { 
    int wartosc,x,y; 
    lzamknieta *parent; 
    lzamknieta *tz; 
}; 

lzamknieta *nz; 
nz = new lzamknieta; // do listy zamknietej dodajemy 1 element 
nz->wartosc = 0; 
nz->x = startx; 
nz->y = starty; 
nz->parent = NULL; 
lzamknieta* tz = nz; 

lotwarta *no; 
no = new lotwarta; 
no->wartosc = 0; 
no->x = startx; 
no->y = starty; 
no->parent = NULL; 

cout << no->rodzic << endl; 
lotwarta *to = no; 

if((y!=1) && (G[y-1][x]!=5)) 
{ 
    no = new lotwarta; 
    no->wartosc = euklides(x,y-1); 
    no->x = x; 
    no->y = y-1; 
    no->parent = tz; <- here I have this error 
} 
+3

Не достаточно экспансивный. Укажите определения классов. – Cinch

+0

Если элемент 'rodzik'' lotwarta' не является 'lzamknieta *', назначение обречено на провал, если, возможно, не существует отношения наследования между двумя классами. –

+0

Если вы не переводите имена на английский язык, вы можете, по крайней мере, отформатировать код. – riodoro1

ответ

0

Я не знаю, что этот код должен делать, но вы можете присвоить указатель типа к другому типу, просто бросая его значение:

no->rodzic = reinterpret_cast<lzamknieta*>(tz); //in this case tz would be casted to a pointer of type lzamknieta 

Но это не всегда хорошая идея, чтобы указать указатель на другой тип, это зависит от контекста.

+1

Добро пожаловать в переполнение стека. Вскоре прочитайте страницу [О программе]. Если вы дадите совет, вы можете наблюдать за сбоем кода и сжечь его позже! Преждевременно отвечать на вопрос; для получения надежного ответа недостаточно информации, и ответ, скорее всего, не связан с 'reinterpret_cast'. Если тип 'rodzic' правильный,' lzamknieta * ', нет необходимости в литье. Если тип 'rodzic' неверен, никакое количество кастингов не будет надежно зафиксировать код. –

 Смежные вопросы

  • Нет связанных вопросов^_^