Сосбвенно вопрос в следующем:
class Collection
{
Class1 member1;
Class2 member2;
...
}
Collection col1
будут ли member1 и member2
находится в участке памяти выделеному Collection
т.е.
(char*)col1.member1 >= (char*)col1 && (char*)col1.member1 <= ((char*)col1+sizeof(col1))
Collection это класс. Говорить что член располагается в участке памяти, выделенным под класс — некорректно. Память выделена под объект класса. У тебя есть объект col1. Память выделится под него — т.е. под составляющие его члены member1 и member2. Если члены не разделены спецификатором доступа, то тогда сначала будет идти member1, потом member2 (не будем про выравнивание — сейчас это несущественно).
clas A
{
int i_;
public:
char c_;
};
А вот здесь нет гарантии, что адрес i_ будет меньше адреса c_, но только вот во всех известных мне реализациях это все же именно так.
Здравствуйте, Аноним, Вы писали:
А>Collection это класс. Говорить что член располагается в участке памяти, выделенным под класс — некорректно. Память выделена под объект класса. У тебя есть объект col1. Память выделится под него — т.е. под составляющие его члены member1 и member2. Если члены не разделены спецификатором доступа, то тогда сначала будет идти member1, потом member2 (не будем про выравнивание — сейчас это несущественно).
ну я имел ввиду обьект
т.е. выражение
(char*)col1.member1 >= (char*)col1 && (char*)col1.member1 <= ((char*)col1+sizeof(col1))
справедливо, не зависит от спецификатора доступа?
А>т.е. выражение
А>А>(char*)col1.member1 >= (char*)col1 && (char*)col1.member1 <= ((char*)col1+sizeof(col1))
А>
А>справедливо, не зависит от спецификатора доступа?
Начнем с того, что это выражение неверно. что такое (char *)col1.member ?
Здравствуйте, Аноним, Вы писали:
А>Сосбвенно вопрос в следующем:
А>А>class Collection
А>{
А> Class1 member1;
А> Class2 member2;
А> ...
А>}
А>Collection col1
А>
А>будут ли member1 и member2
А>находится в участке памяти выделеному Collection
А>т.е.
А>А>(char*)&col1.member1 >= (char*)&col1 && (char*)&col1.member1 <= ((char*)&col1+sizeof(col1))
А>
Да, размер Collection зависит от того что в нем находится.
Здравствуйте, _nn_, Вы писали:
А>>А>>(char*)&col1.member1 >= (char*)&col1 && (char*)&col1.member1 <= ((char*)&col1+sizeof(col1))
А>>
__>Да, размер Collection зависит от того что в нем находится.
Спасибо а то а про & забыл