Re[4]: Перегрузка операторов
От: Павел Кузнецов  
Дата: 23.05.04 17:48
Оценка:
> ПК>Оператора присваивания здесь нет. Здесь есть инициализация. Это суть разные вещи.
>
> Для классов да, но разве для POD типов это не присваивание? Я долго читал раздел 8.5 стандарта (ИМХО на редкость непонятный) и понял именно так.

И для POD-типов здесь тоже инициализация: нигде в 8.5 нет речи о замене инициализации операциями присваивания. Вообще-то в плане инициализации разделение происходит не на POD-типы и не POD-типы, а на инициализацию ссылок, инициализацию массивов символов, инициализацию прочих массивов, инициализацию объектов классов, инициализацию объектами классов и прочую инициализацию. POD-класс типы попадают в пункты инициализации объектов классов и инициализацию объектами классов. Фундамендтальные типы, тоже являющиеся POD-типами, попадают в "прочую инициализацию". Вот пункт, применимый к фундаментальным типам:

  • Otherwise, the initial value of the object being initialized is the (possibly converted) value of the initializer expression. Standard conversions (clause 4) will be used, if necessary, to convert the initializer expression to the cv-unqualified version of the destination type; no user-defined conversions are considered. If the conversion cannot be done, the initialization is ill-formed. [Note: an expression of type “cv1 T” can initialize an object of type “cv2 T” independently of the cv-qualifiers cv1 and cv2.
    int a;
    const int b = a;
    int c = b;

    —end note]

  • Posted via RSDN NNTP Server 1.9 alpha
    Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
     
    Подождите ...
    Wait...
    Пока на собственное сообщение не было ответов, его можно удалить.