Форум программистов, компьютерный форум CyberForum.ru

Разница между префиксной и постфиксной формой записи счетчика цикла - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Найти количество элементов массива, равных первому элементу http://www.cyberforum.ru/cpp-beginners/thread122150.html
ПОМОГИТЕ ПОЖАЛУЙСТА!!!! 1)Составить программу,которая находит количество элементов,равных первому элементу,и количество элементов,равных последнему,в мвссивах X(n) и Y(M).вычислить количество элементов(оформить в виде таблицы)!!!! 2,Получить квадратную матрицу порядка n. 1 2 3 ... n n n-1 n-3 1 ...
C++ Константы и выражения 1.Записать каждое десятичное число в виде целой десятичной, восьмеричной и шестнадцатеричной константы: 126 10 219 77 2.Записать каждое десятичное число в виде вещественной константы в форме с фиксированной точкой и экспоненциальной форме: 0,4335 4,3*10-2 778 0,005*102 3.еменная объявлена как float S. Определить значение результата каждой операции и значение переменной S... http://www.cyberforum.ru/cpp-beginners/thread122142.html
Выберите названия, содержащие хотя бы одно из заданных ключевых слов. C++
Помогите плиз решить задачу на С++ Заданный набор ключевых слов, а также текст, в котором хранится длинный список названий книг и научных работ. Выберите названия, содержащие хотя бы одно из заданных ключевых слов.
записать каждое десятичное C++
1. Записать каждое десятичное число в виде целой десятичной, восьмеричной и шестнадцатеричной константы: 55 219 143 79 2. Записать каждое десятичное число в виде вещественной константы в форме с фиксированной точкой и экспоненциальной форме: 99*10-1 1340 9,865 10000 3. Переменная объявлена как int S. Определить значение результата каждой операции и значение переменной S после...
C++ Как сделать, чтоб после появления нового символа, предыдущий менялся на пробел http://www.cyberforum.ru/cpp-beginners/thread122114.html
Есть цикл вот такой: int main() { string b,c; b = "+"; c = " "; int a = 0; for(int i = 0;i<=100000000;i++) {
C++ Среди всех n-значных чисел указать те, сумма цифр которых равна данному числу k. Среди всех n-значных чисел указать те, сумма цифр которых равна данному числу k. Помогите решить :) подробнее

Показать сообщение отдельно
AlexVRud
414 / 143 / 36
Регистрация: 04.07.2014
Сообщений: 415
25.02.2016, 11:35     Разница между префиксной и постфиксной формой записи счетчика цикла
TheCalligrapher, Посмотри на результат, я там ничего не вижу кроме _ZN6NumberppEi в объектом файле и его вызове в итоговом.

Добавлено через 18 минут
for.h:
C++
1
2
3
4
5
6
7
class Number {
  int i[100];
public:
  Number& operator++ ();
  Number operator++ (int);
  ~Number();
};
for.cpp:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include "for.h"
 
Number& Number::operator++() {
  ++i[0];
  return *this;
 };
 
Number  Number::operator++ (int) {
  Number result(*this);   // make a copy for result
  ++(*this);              // Now use the prefix version to do the work
  return result;          // return the copy (the old) value.
}
 
Number::~Number() {
}
main.cpp:
C++
1
2
3
4
5
6
7
#include "for.h"
 
int main() {
  Number a;
  a++;
  return 0;
}
Результат при -O3

Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
00000000004005c0 <main>:
  4005c0:       53                      push   %rbx
  4005c1:       31 d2                   xor    %edx,%edx
  4005c3:       48 81 ec 20 03 00 00    sub    $0x320,%rsp
  4005ca:       48 8d bc 24 90 01 00    lea    0x190(%rsp),%rdi
  4005d1:       00 
  4005d2:       48 89 e6                mov    %rsp,%rsi
  4005d5:       e8 36 01 00 00          callq  400710 <_ZN6NumberppEi>
  4005da:       48 8d bc 24 90 01 00    lea    0x190(%rsp),%rdi
  4005e1:       00 
  4005e2:       e8 79 01 00 00          callq  400760 <_ZN6NumberD1Ev>
  4005e7:       48 89 e7                mov    %rsp,%rdi
  4005ea:       e8 71 01 00 00          callq  400760 <_ZN6NumberD1Ev>
  4005ef:       48 81 c4 20 03 00 00    add    $0x320,%rsp
  4005f6:       31 c0                   xor    %eax,%eax
  4005f8:       5b                      pop    %rbx
  4005f9:       c3                      retq   
  4005fa:       48 89 c3                mov    %rax,%rbx
  4005fd:       48 89 e7                mov    %rsp,%rdi
  400600:       e8 5b 01 00 00          callq  400760 <_ZN6NumberD1Ev>
  400605:       48 89 df                mov    %rbx,%rdi
  400608:       e8 a3 ff ff ff          callq  4005b0 <_Unwind_Resume@plt>
  40060d:       0f 1f 00                nopl   (%rax)
 
Текущее время: 07:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru