PDA

View Full Version : различия struct/class в цпп


nm
Oct 30, 2004, 21:02
знатокки, хола :)

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

предположим что есть :

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 - кросскомпильность этой же хрени :))))

nm
Oct 30, 2004, 21:11
все, всем спасибо, все свободны

структуры и классы гененрируют абсолютно один и тот же код. точка

Agregat
Oct 31, 2004, 06:09
отвечу так, на всякий случай. разницы
1. у структуры по дефолту все мемберы (функции и члены) открыты, у класса закрыты
2. наследование от класса по дефолту закрытое, от структуры открытое
И еще, Гаспар, не делай calloc/malloc на классах/структурах имеющих
1. не тривиальный конструктор
2. содержащих члены, которые должны инициализироваться.
3. делать можешь но потом надо вызывать размещающаю форму оператора new.