Re[7]: Примерно то же, но без макросов. Как привести к типу?
От: Baburin S.S. Россия  
Дата: 03.02.08 12:49
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>static не подойдет, если в классе B будет переменная типа std::string, или что нибудь в этом роде, то будут утечки памяти.

я говорил только про компиляцию . А где будет утечка?

struct Base
{
std::string dd;
Base() {};
Base(Base *) {}
};

struct A
{
static Base base;

struct _tag_x : public Base
{
_tag_x() : Base(reinterpret_cast<Base *>(&base)) {}
~_tag_x()
{
return;
}
}x;
};

Base A::base;

int _tmain(int argc, _TCHAR* argv[])
{
A ss;
ss.base.dd = "rr";
ss.x.dd = "rr1";
return 0;
}
... << RSDN@Home 1.2.0 alpha rev. 0>>

Re[8]: Примерно то же, но без макросов. Как привести к типу?
От: Аноним  
Дата: 03.02.08 13:00
Оценка:
Здравствуйте, Baburin S.S., Вы писали:

Утечки не будет, ошибся. Спасибо.
Re[3]: Как привести к типу?
От: Vain Россия google.ru
Дата: 03.02.08 14:43
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Мне кажется, что такое разделение усложняет кодирование.

Такое разделение необходимо, т.к. в общем случае размер указателя-на-мембер может быть больше чем sizeof(void*).
здесь
Автор: Андрей Тарасевич
Дата: 12.02.03

здесь
Автор: Андрей Тарасевич
Дата: 16.02.02
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Re[4]: Как привести к типу?
От: Аноним  
Дата: 03.02.08 14:57
Оценка:
Здравствуйте, Vain, Вы писали:

V>Такое разделение необходимо, т.к. в общем случае размер указателя-на-мембер может быть больше чем sizeof(void*).

V>здесь
Автор: Андрей Тарасевич
Дата: 12.02.03

V>здесь
Автор: Андрей Тарасевич
Дата: 16.02.02


А что мешает сделать размер всех типов указателей равным максимально возможному? Соображения оптимизации?
Re[5]: Как привести к типу?
От: Аноним  
Дата: 03.02.08 15:58
Оценка:
Здравствуйте, Аноним, Вы писали:

А>А что мешает сделать размер всех типов указателей равным максимально возможному? Соображения оптимизации?


Нет. Концептуальная разница между объектом и членом объекта.
Re[6]: Как привести к типу?
От: Аноним  
Дата: 03.02.08 16:01
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Нет. Концептуальная разница между объектом и членом объекта.


Да, но java ведь такое работает? Я не ошибаюсь?
Re[7]: Как привести к типу?
От: Аноним  
Дата: 03.02.08 16:49
Оценка: +1
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, Аноним, Вы писали:


А>>Нет. Концептуальная разница между объектом и членом объекта.


А>Да, но java ведь такое работает? Я не ошибаюсь?


Что конкретно работает в java?
То как ты хочешь в java ты тоже не получишь.
Если попробуешь, то получишь что-то типа этого:

cannot make a static reference to a non-static field

Re[8]: Как привести к типу?
От: Аноним  
Дата: 03.02.08 17:30
Оценка:
Здравствуйте, Аноним, Вы писали:

А>>Да, но java ведь такое работает? Я не ошибаюсь?


А>Что конкретно работает в java?

А>То как ты хочешь в java ты тоже не получишь.
А>Если попробуешь, то получишь что-то типа этого:
А>

А>cannot make a static reference to a non-static field


Это успокаивает.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.