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

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

и не работает, чем ему дополнительные скобки помешали?
...
Рейтинг: 0 / 0
просто интересно
    #34881595
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
просто интересно
    #34881602
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Загоняешься ?
Один аргумент и три есть разница ???
...
Рейтинг: 0 / 0
просто интересно
    #34881720
Tubrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gluk (Kazan)Загоняешься ?
Один аргумент и три есть разница ???

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

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

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

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

http://en.wikipedia.org/wiki/Comma_operator
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
просто интересно
    #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
просто интересно
    #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
просто интересно
    #34882417
Tubrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ясно
...
Рейтинг: 0 / 0
просто интересно
    #34882828
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
просто интересно
    #34883791
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ErV
Что за "операция запятая" (линк, если не затруднит)? Не припоминаю
такого оператора, например.


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

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

Кстати перегружать не рекомендуется
после перегрузки будет уже не совсем запятая (так же как && и ||)
...
Рейтинг: 0 / 0
просто интересно
    #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
просто интересно
    #34885715
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
18 сообщений из 18, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / просто интересно
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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