Armenian Knowledge Base  

Go Back   Armenian Knowledge Base > Technical sections > Languages, Compilers, Interpreters > C/C++
Register

Closed Thread
 
LinkBack Thread Tools
Old 30.10.2004, 22:02   #1
ЙЦУКЕН
 
Join Date: 07 2002
Location: 0x68,0x69,0x72, 0x69,0x6e,0x67, 0x20,0x6e,0x6f, 0x77
Age: 47
Posts: 3,118
Downloads: 0
Uploads: 0
Reputation: 5 | 0
Default различия struct/class в цпп

знатокки, хола

значит такой вопрос --
я 100% знаю, что с случае структур работает следующая весчь

предположим что есть :
Code:
struct FooBar_t {
char a;
char b;
char c;
char d;
};

struct FooBar_t  *fb;

fb = calloc(sizeof(FooBar_t), 1);

strncpy(fb, 4, "test");
и я четко буду знать в какой переменной какая буковка будет лежать ... (вопросы связанные с align-ом, не рассматриваем, знаю я про них

теперь вопрос -- если поменять там слово struct на class, к чему это может привести ? т.е. есть ли те-же гарантии расположения переменных в памяти, что даются компилятором насчет структур ?

интересует 1 - кроццплатформенность этой хрени
2 - кросскомпильность этой же хрени )))
Old 30.10.2004, 22:11   #2
ЙЦУКЕН
 
Join Date: 07 2002
Location: 0x68,0x69,0x72, 0x69,0x6e,0x67, 0x20,0x6e,0x6f, 0x77
Age: 47
Posts: 3,118
Downloads: 0
Uploads: 0
Reputation: 5 | 0
Default

все, всем спасибо, все свободны

структуры и классы гененрируют абсолютно один и тот же код. точка
Old 31.10.2004, 06:09   #3
Грустно...
 
Agregat's Avatar
 
Join Date: 08 2002
Location: Там, где всегда идут дожди
Age: 35
Posts: 21,717
Downloads: 2
Uploads: 0
Reputation: 250 | 7
Default

отвечу так, на всякий случай. разницы
1. у структуры по дефолту все мемберы (функции и члены) открыты, у класса закрыты
2. наследование от класса по дефолту закрытое, от структуры открытое
И еще, Гаспар, не делай calloc/malloc на классах/структурах имеющих
1. не тривиальный конструктор
2. содержащих члены, которые должны инициализироваться.
3. делать можешь но потом надо вызывать размещающаю форму оператора new.
Sponsored Links
Closed Thread

Thread Tools


На правах рекламы:
реклама

All times are GMT. The time now is 02:51.


Powered by vBulletin® Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.