Здравствуйте, Saltarello, Вы писали:
S>Переведите мне на русский, что означает сия конструкция:
S>CString str1; S>PString str2=(PString &)str1;
1. Делаем ссылку класса PString из str1,( (PString &)str1 ). Предполагается, что создается веременный объект PString&. Соответственно должен быть конструктор PString(CString& _str); или оператор типа PString& operator & (CString& _str), или что то подобное
2. Делаем присваивание, полученного в пункте 1,str2.
Здравствуйте, bedward70, Вы писали:
S>> CString str1; S>> PString str2=(PString &)str1;
b> 1. Делаем ссылку класса PString из str1,( (PString &)str1 ). b> Предполагается, что создается веременный объект PString&.
Не предполагается. Приведение к неконстантной ссылке никогда не создает
временные объекты.
b> Соответственно должен быть конструктор PString(CString& _str); или b> оператор типа PString& operator & (CString& _str), или что то b> подобное
Не должен.
В данном случае конструкция "(PString &)str1" означает: трактовать
объект типа CString как объект типа PString. Для того, чтобы это работало,
внутреннее представление PString должно совпадать с CString.
Posted via RSDN NNTP Server 1.5 beta
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Здравствуйте, Павел Кузнецов, Вы писали:
ПК>объект типа CString как объект типа PString. Для того, чтобы это работало, ПК>внутреннее представление PString должно совпадать с CString.
Значит ли это, что PString — обязательно наследник CString?
внутреннее представление — это что?
Здравствуйте, e-smirnov, Вы писали:
ES>Значит ли это, что PString — обязательно наследник CString?
Нет. Если бы CString был public предком PString, то приведение (CString&) не требовалось бы. ES>внутреннее представление — это что?
данные — члены, виртуальные табдицы и т.д. — структура самого объекта.