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

Отличия пространства имен от структуры - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Как много шахматных слонов можно расставить, чтобы они не угрожали друг другу? http://www.cyberforum.ru/cpp-beginners/thread1217445.html
Какое наибольшее число слонов можно расставить на шахматной доске так, чтобы никакие из них не угрожали друг другу. Задачу решить численным методом. Заранее благодарю.
C++ C++ Оболочка для теста Помогите сделать программу. Надо срочно сдать курсовую. С подсчётом результата в каждом тесте. Пожалуйста помогите, очень надо http://www.cyberforum.ru/cpp-beginners/thread1217441.html
Объясните алгоритм C++
#include <iostream> using namespace std; int main() { double num; cout << "enter number: "; while ( cin >> num ) { unsigned count = 1;
C++ Определите максимум (М1) и минимум (М2) в массиве
#include<iostream> #include<conio.h> #include<string> #include<stdio.h> #include<fstream> #include<stdlib.h> #include<math.h> using namespace std; string s; double *mas; int razm; void udalenie()
C++ Функция, находящая два максимальных числа в массиве и возвращающая структуру с этими числами http://www.cyberforum.ru/cpp-beginners/thread1217298.html
Напишите функцию, находящую два максимальных числа в массиве и возвращающую структуру с этими числами и подробно расписать код.
C++ Функции над полями структуры - Поиск самого высокого студента Всем привет! Помогите пожалуйста добавить в мой код следующие функции:1) Поиск самого высокого студента 2) Самого тяжелого(Вес) и 3) Количество больных студентов #include "stdafx.h" #include <stdlib.h> #include <iostream> #include <conio.h> #include <string> enum status {Zdorov=1, Bolen}; struct man подробнее

Показать сообщение отдельно
0x10
2425 / 1597 / 232
Регистрация: 24.11.2012
Сообщений: 3,919
28.06.2014, 16:20     Отличия пространства имен от структуры
Цитата Сообщение от Avazart Посмотреть сообщение
А указатель this передаваемый неявно в метод?
А что с ним? Такая же часть сигнатуры, что вылезает при использовании тех же указателей и всяких std::bind.
Ну есть у нас, допустим, вот такой код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
struct MyStructure
{
    int MyFunction()
    {
        return 42;
    }
};
 
int main()
{
    MyStructure obj;
    obj.MyFunction();
}
Что тут есть по факту - это вызов функции типа MyStructure_MyFunction(&obj);
И в ассемблерном выводе мы найдем как раз метку, полученную конкатенацией имени типа и функции.
Assembler
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
42
43
44
45
46
47
    .file   "main.cpp"
# GNU C++ (Ubuntu 4.9-20140406-1ubuntu1) version 4.9.0 20140405 (experimental) [trunk revision 209157] (x86_64-linux-gnu)
#   compiled by GNU C version 4.9.0 20140405 (experimental) [trunk revision 209157], GMP version 5.1.3, MPFR version 3.1.2-p3, MPC version 1.0.1
    .section    .text._ZN11MyStructure10MyFunctionEv,"axG",@progbits,_ZN11MyStructure10MyFunctionEv,comdat
    .align 2
    .weak   _ZN11MyStructure10MyFunctionEv
    .type   _ZN11MyStructure10MyFunctionEv, @function
_ZN11MyStructure10MyFunctionEv:
.LFB0:
    .cfi_startproc
    pushq   %rbp    #
    .cfi_def_cfa_offset 16
    .cfi_offset 6, -16
    movq    %rsp, %rbp  #,
    .cfi_def_cfa_register 6
    movq    %rdi, -8(%rbp)  # this, this
    movl    $42, %eax   #, D.2239
    popq    %rbp    #
    .cfi_def_cfa 7, 8
    ret
    .cfi_endproc
.LFE0:
    .size   _ZN11MyStructure10MyFunctionEv, .-_ZN11MyStructure10MyFunctionEv
    .text
    .globl  main
    .type   main, @function
main:
.LFB1:
    .cfi_startproc
    pushq   %rbp    #
    .cfi_def_cfa_offset 16
    .cfi_offset 6, -16
    movq    %rsp, %rbp  #,
    .cfi_def_cfa_register 6
    subq    $16, %rsp   #,
    leaq    -1(%rbp), %rax  #, tmp85
    movq    %rax, %rdi  # tmp85,
    call    _ZN11MyStructure10MyFunctionEv  #
    movl    $0, %eax    #, D.2240
    leave
    .cfi_def_cfa 7, 8
    ret
    .cfi_endproc
.LFE1:
    .size   main, .-main
    .ident  "GCC: (Ubuntu 4.9-20140406-1ubuntu1) 4.9.0 20140405 (experimental) [trunk revision 209157]"
    .section    .note.GNU-stack,"",@progbits
 
Текущее время: 16:47. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru