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

Вопрос к знатокам (ООП + ассемблер) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Написать функцию для вычисления суммы элементов квадратной матрицы, расположенных ниже главной диагонали http://www.cyberforum.ru/cpp-beginners/thread381971.html
Написать функцию для вычисления суммы элементов квадратной матрицы, расположенных ниже главной диагонали. С ее помощью найти максимальное значение такой суммы в n заданных матрицах.
C++ Должен рисоватся график Вот тут вот где ошибка? И потом ещё нужно, чтобы рисовалась в этой проге синусойда, косинусойда, вот написал одну, а ошибка где не знаю #include<windows.h> #include<string.h> #include<stdio.h>... http://www.cyberforum.ru/cpp-beginners/thread381969.html
C++ нахождение точек попавших в заштрихованную область
Добрый вечер!!! Не получается правильно записать условия, помогите пожалуйста. Постановка задачи: Для точек попаших в заштрихованную область вычислить значение функции Z и вывести на экран....
Русский язык в C++ C++
Как в C++ консоли подключить русский язык желательной setLoceta(Rus) такой функцией, у меня не получилось её использваоть
C++ Расстояние в дереве http://www.cyberforum.ru/cpp-beginners/thread381957.html
Есть определенная реализация функциональной части, как дополнить ее до полной работоспособности в соответствии с заданием? Задание: Дан неориентированный связный граф без циклов (дерево), на...
C++ Инвентирование порядка елементов в массиве Например дан массив a = {1, 2, 3, 4, 5} как сделать так, что бы элементы в нем располагались в обратном порядке? подробнее

Показать сообщение отдельно
Bers
Заблокирован

Вопрос к знатокам (ООП + ассемблер) - C++

11.11.2011, 20:57. Просмотров 907. Ответов 6
Метки (Все метки)

Ниже представлены три тестовых класса.

Первый - классическая модель классов в с++
Имеет методы, и данные члены. Обрабатывает свои данные члены "напрямую"

Второй - практически как первый, только данные члены агрегируются через дополнительную прокладку- структуру. Доступ к данным осуществляется через модификатор доступа объекта.

Третий - причина, по которой была создана эта тема. Манипулятор. Не имеет собственных данных членов, но работает с объектом через указатель на него.


C++
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
struct SData { int m_a, m_b; };
 
class CTest:private SData
{
public: void Do() 
        { 
            std::cout<< "Test!\n"; 
            std::cout<< m_a<<" "<<m_b<< "\n"; 
        }
};
 
class CTest1
{
public: void Do() 
        { 
            std::cout<< "Test1!\n"; 
            std::cout<< m_data.m_a<<" "<<m_data.m_b<< "\n"; 
        }
protected: SData m_data;
};
 
 
class CTest2
{
public: void Do(const SData* pTarget) const
        { 
            std::cout<< "Test2!\n"; 
            std::cout<< pTarget->m_a<<" "<<pTarget->m_b<< "\n"; 
        }
};
 
 
int main()
{
    CTest test;   test.Do();
    CTest1 test1; test1.Do();
    CTest2 test2; test2.Do( &(SData()) );
 
    return 0;
}
Если кратко: какой из трех классов будит работать быстрее?

Если раскрыть вопрос: Есть ли вообще хоть какая то разница по скорости доступа к данными между третьим и втором классом?
Я не знаю ассемблера, но у меня возникло подозрение, что доступ к данным через "точечку" и через "стрелочку" с одинаковый скоростью. Не?

И есть ли разница по скорости доступа к данным между первым, и двумя последними классами?

Ведь все равно, на самом деле класс после компиляции - суть набор функций-обработчиков данных объекта. Объект живёт отдельно от этих функций.

Логично предположить, что в любом случае доступ к объекту будит осуществлен по некому указателю, в том или ином виде. Поэтому, во всех трех случаях скорость доступа к данным будит одинаковая. Я прав? А если нет, расскажите пожалуйста, какой класс будит работать быстрее.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru