Название: +"str" Отправлено: Alex Custov от Август 31, 2010, 15:11 Что делает конструкция
Код
? :) Название: Re: +"str" Отправлено: BRE от Август 31, 2010, 15:21 Что делает конструкция IMHO, тоже что иКод
? :) Код
Название: Re: +"str" Отправлено: Alex_cs_gsp от Сентябрь 01, 2010, 07:48 Это зачем выдумать так нужно было?
Название: Re: +"str" Отправлено: lit-uriy от Сентябрь 01, 2010, 08:04 >>Это зачем выдумать так нужно было?
скорее всего до плюса, что-то было. Потом не понадобилось, удалили. А про плюс забыли Название: Re: +"str" Отправлено: zenden от Сентябрь 01, 2010, 10:33 И что же до плюса могло быть?
Название: Re: +"str" Отправлено: Alex Custov от Сентябрь 01, 2010, 12:59 я писал более сложную конструкцию из QStringList() << "a" << "b" << ..., и случайно нажал + перед "a", забыв о нём, я откомпилил. Так обнаружилась верная с точки зрения языка конструкция
Код Теперь вот сижу думаю, что она означает исходя из того, что -"a" конструкция уже неверная :) Название: Re: +"str" Отправлено: Alex_cs_gsp от Сентябрь 01, 2010, 14:07 Так тоже можно
const char *s = "i"; const char *p = +s; Название: Re: +"str" Отправлено: spectre71 от Сентябрь 02, 2010, 13:26 "+" в данном случае унарная операция.
int a = 10; // a == 10 int b = +10; // b == 10 int c = -10; // c == -10 Аналогично: const char *t = "-i"; // t == адрес строки("-i") const char *p = +"-i"; // p == адрес строки("-i") const char *r = -"-i"; // r == - адрес строки("-i") Название: Re: +"str" Отправлено: Alex_cs_gsp от Сентябрь 02, 2010, 13:38 "+" в данном случае унарная операция. int a = 10; // a == 10 int b = +10; // b == 10 int c = -10; // c == -10 Аналогично: const char *t = "-i"; // t == адрес строки("-i") const char *p = +"-i"; // p == адрес строки("-i") const char *r = -"-i"; // r == - адрес строки("-i") const char *r = -"-i"; не катит Название: Re: +"str" Отправлено: spectre71 от Сентябрь 02, 2010, 13:53 const char *r = -"-i"; не катит Не важно. Важен принцип. А почему компилятор переваривает +"-i"; - вопросы к его разработчикам. Название: Re: +"str" Отправлено: Alex_cs_gsp от Сентябрь 02, 2010, 13:56 Да как бы в VS2010 тоже самое. Просто так правильно, разработчики тут не причем.
Название: Re: +"str" Отправлено: spectre71 от Сентябрь 02, 2010, 14:09 Да как бы в VS2010 тоже самое. Просто так правильно, разработчики тут не причем. Опять же не важно. +"str"; ничего не меняет с точки зрения синтаксиса, видимо из-за этого ее считают допустимой -"str"; является недопустимой для данного типа. Вот так можно: int aaa = -(int)"bbb"; Название: Re: +"str" Отправлено: Alex_cs_gsp от Сентябрь 02, 2010, 14:14 Код: int a = -5; str_1 и str_2 будут разными адресами. Название: Re: +"str" Отправлено: spectre71 от Сентябрь 02, 2010, 14:22 Код: int a = -5; str_1 и str_2 будут разными адресами. Ну и что. Все правильно. Правда оба указателя будут невалидными. Название: Re: +"str" Отправлено: Alex_cs_gsp от Сентябрь 02, 2010, 15:19 Ну так для строки "+" это валидный указатель, а "-" нет.
Название: Re: +"str" Отправлено: spectre71 от Сентябрь 02, 2010, 15:23 Ну так для строки "+" это валидный указатель, а "-" нет. Это про что? О чем речь? Название: Re: +"str" Отправлено: m_ax от Сентябрь 02, 2010, 15:48 Насколько мне известно, унарный оператор "+", в отличие от "-", ничевошеньки не делает)
Его ввели только ради симметрии с унарным оператором "-". Для пользовательских типов его ("+") можно определить как вам вздумается (всё зависит от вашей буйной вантазии). :) Название: Re: +"str" Отправлено: Alex_cs_gsp от Сентябрь 02, 2010, 17:22 Ну так для строки "+" это валидный указатель, а "-" нет. Это про что? О чем речь? О языкозаплетании... имел ввиду ёператор. |