Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / просто интересно / 18 сообщений из 18, страница 1 из 1
19.10.2007, 16:52:24
    #34881571
Tubrik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
просто интересно
написал:
if ( !tmp_str.compare((0, tmp_f.length(), tmp_f)) )

вместо:
if ( !tmp_str.compare(0, tmp_f.length(), tmp_f) )

и не работает, чем ему дополнительные скобки помешали?
...
Рейтинг: 0 / 0
19.10.2007, 16:57:23
    #34881595
Akh
Akh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
просто интересно
Tubrikнаписал:
if ( !tmp_str.compare((0, tmp_f.length(), tmp_f)) )

вместо:
if ( !tmp_str.compare(0, tmp_f.length(), tmp_f) )

и не работает, чем ему дополнительные скобки помешали?

Пишет не достаточно аргУментов? :-E
...
Рейтинг: 0 / 0
19.10.2007, 16:58:17
    #34881602
Gluk (Kazan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
просто интересно
Загоняешься ?
Один аргумент и три есть разница ???
...
Рейтинг: 0 / 0
19.10.2007, 17:33:04
    #34881720
Tubrik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
просто интересно
Gluk (Kazan)Загоняешься ?
Один аргумент и три есть разница ???

ага, не подумал, что все что в скобках можно свернуть в один аргумент, интересно, что это за аргумент получается..
...
Рейтинг: 0 / 0
19.10.2007, 17:33:58
    #34881724
Akh
Akh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
просто интересно
Tubrik
ага, не подумал, что все что в скобках можно свернуть в один аргумент, интересно, что это за аргумент получается..
tmp_f
...
Рейтинг: 0 / 0
19.10.2007, 17:34:44
    #34881727
Akh
Akh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
просто интересно
Обратить внимание на оператор запятую.
...
Рейтинг: 0 / 0
19.10.2007, 17:39:03
    #34881733
Tubrik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
просто интересно
Ok
...
Рейтинг: 0 / 0
20.10.2007, 00:24:34
    #34882248
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
просто интересно
Tubrik пишет:

> if ( !tmp_str.compare((0, tmp_f.length(), tmp_f)) )

Это есть вычисление выражения из трех операндов операции "," (операция запятая),
получение одного значения, и вызов с ним вашей функции. Если описан
шаблон функции, то должен быть как минимум warning. А если это C++ -
вообще ругаться должно.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
20.10.2007, 06:59:19
    #34882337
ErV
ErV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
просто интересно
MasterZiv wrote:

> Это есть вычисление выражения из трех операндов операции "," (операция
> запятая)
Что за "операция запятая" (линк, если не затруднит)? Не припоминаю
такого оператора, например.
--
We are all going to hell and I'm driving the bus
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
20.10.2007, 08:38:19
    #34882342
Tubrik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
просто интересно
в С++ есть возможность перегрузить запятую, как-то пробовал ради интереса, кол-во вызовов перегруженного оператора в результате = (кол-во аргументов в скобках - 1), если без скобок, то получался обратный результат, почему сейчас не помню
...
Рейтинг: 0 / 0
20.10.2007, 08:51:02
    #34882345
teras
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
просто интересно
ErV wrote:
> Автор: "ErV"
>
> MasterZiv wrote:
>
>> Это есть вычисление выражения из трех операндов операции "," (операция
>> запятая)
> Что за "операция запятая" (линк, если не затруднит)? Не припоминаю
> такого оператора, например.

http://en.wikipedia.org/wiki/Comma_operator
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
20.10.2007, 09:30:30
    #34882353
Tubrik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
просто интересно
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
class Comma
{
private:
	int			m_val;
public:
	Comma(int i): m_val(i)
	{
		printf("\nSet val = %d\n", m_val);
	}

	Comma		operator ,(Comma op2)
	{
		printf("\nthis->val = %d, op2.val = %d", this->m_val, op2.m_val);
		return op2;
	}

	void		Show()
	{
		printf("\nresult = %d\n", m_val);
	}
}; // class Comma


int main(int argc, char* argv[])
{
	Comma	ob1( 1 ), ob2( 2 ), ob3( 3 ), ob_result( 0 );
	
	ob1.Show();
	ob2.Show();
	ob3.Show();
	ob_result.Show();
	
	printf("\ndemo with '()'");
	ob_result = (ob1, ob2, ob3);
	ob_result.Show();

	printf("\ndemo with no '()'");
	ob_result = ob1, ob2, ob3;
	ob_result.Show();
	return  0 ;
}
...
Рейтинг: 0 / 0
20.10.2007, 10:28:03
    #34882368
teras
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
просто интересно
Tubrik wrote:
> class Comma

У запятой - самый низкий приоритет, то есть строка
> ob_result = ob1, ob2, ob3;

Эквивалентна
(ob_result = ob1), ob2, ob3;
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
20.10.2007, 12:46:23
    #34882417
Tubrik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
просто интересно
ясно
...
Рейтинг: 0 / 0
21.10.2007, 00:35:17
    #34882828
ErV
ErV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
просто интересно
teras wrote:

> http://en.wikipedia.org/wiki/Comma_operator
Ясно, спасибо.
--
We are all going to hell and I'm driving the bus
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
22.10.2007, 09:25:22
    #34883791
Gluk (Kazan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
просто интересно
ErV
Что за "операция запятая" (линк, если не затруднит)? Не припоминаю
такого оператора, например.


Ну как же как же

for (int i=0;i<n;i++,j--);

Кстати перегружать не рекомендуется
после перегрузки будет уже не совсем запятая (так же как && и ||)
...
Рейтинг: 0 / 0
22.10.2007, 10:15:45
    #34883915
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
просто интересно
ErV пишет:
> Автор: "ErV"
>
> MasterZiv wrote:
>
> > Это есть вычисление выражения из трех операндов операции "," (операция
> > запятая)
> Что за "операция запятая" (линк, если не затруднит)? Не припоминаю
> такого оператора, например.

Линк давайт не буду - лениво.

Это операция, которая вычисляет 2 выражения, стоящих слева и
справа от нее, и возвращает результат правого. Комбинируется слева
направо. Применяется часто в циклах for, например :

Код: plaintext
\nsize_t n =  1000 ;\nint i,j;\n\nfor( i= 0 , j= 0 ; i <  1000 ; ++i, ++j)\n{\n   // do some staff\n}\n

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
22.10.2007, 17:01:35
    #34885715
ErV
ErV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
просто интересно
MasterZiv wrote:

> Это операция, которая вычисляет 2 выражения, стоящих слева и
> справа от нее, и возвращает результат правого.
Понял, вопросов нет.
--
We are all going to hell and I'm driving the bus
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / просто интересно / 18 сообщений из 18, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]