Цитата(IgorKossak @ Mar 18 2008, 09:37)

Именно так и объявленный объект создаётся In section .bss, а также создаются конструкторы, пишущие в эту область памяти.
Объект может не иметь конструктора. и все методы могут быть конст. Вот пример который кидает данные в скецию .rodata
Это конечно простой объект без VMT - реально просто структура с методами. Но такой подход может быть полезен никакого оверхида
Код
class cls {
public:
int a;
int b;
int foo(void) const;
};
extern const cls a;
extern const cls b;
const cls a = {4,5};
const cls b = {6,7};
int cls::foo(void) const
{
return a + b;
}
а вот листинг
Код
\ In section .rodata, align 4
11 const cls a = {4,5};
\ a:
\ 00000000 040000000500 DC32 4, 5
\ 0000
\ In section .rodata, align 4
12 const cls b = {6,7};
\ `b`:
\ 00000000 060000000700 DC32 6, 7
\ 0000
13
\ In section .text, align 4, keep-with-next
14 int cls::foo(void) const
15 {
16 return a + b;
\ _ZNK3cls3fooEv:
\ 00000000 0168 LDR R1,[R0, #+0]
\ 00000002 4068 LDR R0,[R0, #+4]
\ 00000004 0818 ADDS R0,R1,R0
\ 00000006 7047 BX LR ;; return
17 }
18