Страница 2 из 2

Добавлено: 16 мар 2007, 18:39
Baguk
aissp писал(а): Если что то можно сделать просто, зачем делать сложно?
Запретить С++ как класс (без деструктора) и перейти на С.

Добавлено: 16 мар 2007, 18:47
Marmot
Baguk писал(а):Запретить С++ как класс (без деструктора) и перейти на С.
+1

Не нужен С++, нужен С, там где нужна скорость, drivers, kernels, ограничения по CPU, memory etc, и Java для прочих аппликух :)

Добавлено: 16 мар 2007, 19:44
ajkj3em
Marmot писал(а):
Baguk писал(а):Запретить С++ как класс (без деструктора) и перейти на С.
+1

Не нужен С++, нужен С, там где нужна скорость, drivers, kernels, ограничения по CPU, memory etc, и Java для прочих аппликух :)
если много писать на С, то в результате в коде образуютcя patterns,
которые очень сильно напоминают С++ - init/term (c-tor/d-tor) для
структур, поинтеры на функции, в которые передаетcя аналог
this поинтера, callback interfaces похожие на абстрактные классы,
варианты наследования (включение одной структуры в другую и
потом извраты с offsetof и container_of) и тому подобное. вариации
throw-catch на longjmp тоже из етой серии.

дело персонального вкуса, но С++ можно использовать как очень
удобный диалект С, который позволяет писать более компактный
C-style код.

Добавлено: 16 мар 2007, 19:45
ajkj3em
aissp писал(а):ну с моей точки зрения смысел есть, достаточно одного объявления класса для определения порядка инициализации, чем класс + таблица.
я не понимаю о какой таблице ты говоришь. порядок инициализации
и де-инициализации определяетcя и в том, и другом случае во время
компиляции. я чего-то не понимаю зачем там таблица ..

Добавлено: 16 мар 2007, 19:58
Marmot
...

Добавлено: 16 мар 2007, 20:02
Marmot
Marmot писал(а):
ajkj3em писал(а):я не понимаю о какой таблице ты говоришь. порядок инициализации
и де-инициализации определяетcя и в том, и другом случае во время
компиляции. я чего-то не понимаю зачем там таблица ..
А если есть несколько разныч списков инициализации, тогда надо несколько деструкторов? Для каждого порядка инициализации/деинициализации ?

Поправил для ясности

Добавлено: 16 мар 2007, 21:26
ajkj3em
Marmot писал(а):
Marmot писал(а):
ajkj3em писал(а):я не понимаю о какой таблице ты говоришь. порядок инициализации
и де-инициализации определяетcя и в том, и другом случае во время
компиляции. я чего-то не понимаю зачем там таблица ..
А если есть несколько разныч списков инициализации, тогда надо несколько деструкторов? Для каждого порядка инициализации/деинициализации ?

Поправил для ясности
Аааааааааааааааааа ... ептыть, разные конструкторы ... семен семеныч :)

Добавлено: 16 мар 2007, 22:03
aissp
я грил чисто о реадизации компилятора. так проще. более того так логичнее с точки зрения наследования. никто (заисключением мармота есс-но) не будет спорить что базовые классы инициализруются ферст (как гарный жаба программер ему такие фичи до яхуу) но с точки зрения с - наследуемый класс ето просто структура при которой базовые члены идут ферст.


Ша, по причине неадкватности придется прояснить

class A {
int a1;}

class B : public A {
int b1;
}

точка зрения C

struct B {
int a1;
int b1;
}

и естественный порядок a1 first b1 second...

теперь пусть class B {
int b1, b2;}

логичнее предположить и реализовать - порядок объявления.

ОК по другому, тебе дано право выбора стандарта, у тя есть два разных способа решения, оба логичные (я жабу не имею ввиду) какой ты выберешь? Думаю тот который проще. Я бы такой выбрал, инициализация по порядку объявлений не мешает ничему и проще в рализации компилатора - по меому решение однозначно. Нет ? :)

уф.

То был вопрос для интермедиотофф :) для сеньороф я завтрего задам ежели проснусь :)

ЗЫ опа мармот несмотря на языковую ущербность умную вещь заметил - неоднозначность конструктора. Памятник тебе Мармот (сегодян в подарок те одЫн раз скажу ява рулез с++ аццтой для лохоф ) 8)

Добавлено: 17 мар 2007, 07:03
Baguk
aissp писал(а):я грил чисто о реадизации компилятора. так проще. более того так логичнее с точки зрения наследования. никто (заисключением мармота есс-но) не будет спорить что базовые классы инициализруются ферст (как гарный жаба программер ему такие фичи до яхуу) но с точки зрения с - наследуемый класс ето просто структура при которой базовые члены идут ферст.


Ша, по причине неадкватности придется прояснить

class A {
int a1;}

class B : public A {
int b1;
}

точка зрения C

struct B {
int a1;
int b1;
}

и естественный порядок a1 first b1 second...

теперь пусть class B {
int b1, b2;}

логичнее предположить и реализовать - порядок объявления.

ОК по другому, тебе дано право выбора стандарта, у тя есть два разных способа решения, оба логичные (я жабу не имею ввиду) какой ты выберешь? Думаю тот который проще. Я бы такой выбрал, инициализация по порядку объявлений не мешает ничему и проще в рализации компилатора - по меому решение однозначно. Нет ? :)

уф.

То был вопрос для интермедиотофф :) для сеньороф я завтрего задам ежели проснусь :)

ЗЫ опа мармот несмотря на языковую ущербность умную вещь заметил - неоднозначность конструктора. Памятник тебе Мармот (сегодян в подарок те одЫн раз скажу ява рулез с++ аццтой для лохоф ) 8)
Да разве-ж дано каждому все эти конструкторы и наследования запомнить? Взял пойнтер, поднял бит - это понятно. Правда, для job security бывает полезно, но и то не всегда.

Добавлено: 17 мар 2007, 11:09
aissp
Ека у тебя как все просто. А кто Мармота развлекать будет? Если все поднимут бит и фсе? Вот в етом то и вопрос главный 8)