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

О вызове функций классов - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ создать и напечатать матрицу http://www.cyberforum.ru/cpp-beginners/thread373348.html
YurA_280784, доброго дня помоги пожалуйста создать матрицу или плдскажи буду благодарен !!! создать и напечатать матрицу С, размером (6*7) найти минимальное по модулю элементы в каждом столце матрицы. Подзадачи создания и печать матрицы оформить в виде процедур а подзадачи определения массива минимальных значений оформить в виде функции.
C++ Глупый вопрос про наследование Вот фрагмент кода, реального: class CListviewParamPrimary : public CListviewParamFloats { private: /** * @brief Возвращает указатель на объект значения параметра */ virtual CParamValue *get_primary_param(void) = 0; virtual const CParamValue *get_primary_param(void) const = 0; http://www.cyberforum.ru/cpp-beginners/thread373344.html
Объяснить разницу между префиксным и постфиксным инкрементом на простых примерах C++
Можете объяснить разницу между i++ и ++i на просто примере с цифрами?
Контроль напряжения на портах USB C++
Доброго времени суток. Кто может, подскажите пожалуйста можно ли контролировать количество напряжение что подается на USB порт(вкл, выкл) и если можно то как.
C++ Программа на массивы http://www.cyberforum.ru/cpp-beginners/thread373307.html
Помогите пожалуйста написать правильный код для программы. Уже дня 3-4 пробую ничего не получается путевого. Вообщем. Дан двумерный массив, элементы которого вводятся случайным образом. Нужно заполнить новый одномерный массив из элементов двумерного массива которые встречаются в нем более одного раза. Вот то что я пробовал делать: #include <conio.h>; #include <iostream>; #include <clocale>;...
C++ Ответы на книгу Бьерн Страуструп Программирование - Принципы и практика с помощью C + + Вот хотел есть ли книга с ответами на упражнения в книги Бьерн Страуструп Программирование - Принципы и практика с помощью C + + . Просто что то иногда не получается хочется глянуть как это делается подробнее

Показать сообщение отдельно
Mr.X
Эксперт С++
3042 / 1687 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
27.10.2011, 19:45     О вызове функций классов
Цитата Сообщение от Haster Посмотреть сообщение
Mr.X, я имеел ввиду, что компилятор не использует адрес объекта для вычисления местоположения функции в памяти
Да, это верно, и из этого следует такой, например, курьез, что если в функции-члене класса есть статическая переменная, то она будет одна для всех объектов этого класса в текущем пространстве имен, следовательно никак не связанные объекты этого класса могут обмениваться через нее информацией.
Пример:
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
/////////////////////////////////////////////////////////////////////////////////////////
#include <iostream>
/////////////////////////////////////////////////////////////////////////////////////////
struct A
{
    int&  get_set_n()
    {
        static int n = 0;
        return n;
    }
};
/////////////////////////////////////////////////////////////////////////////////////////
int main()
{
    A  a;
    std::cout << "a.get_set_n() = "
              << a.get_set_n()
              << std::endl;
 
    a.get_set_n() = 5;
    A  b;
 
    std::cout << "b.get_set_n() = "
              << b.get_set_n()
              << std::endl;
}
С другой стороны не очень понятна ваша логика в высказывании
Цитата Сообщение от Haster Посмотреть сообщение
компилятор не использует адрес объекта для вычисления местоположения функции в памяти (это наглядно демонстрируется возможностью вызова функции после установки указателя на другой адрес.
Там же и данные-члены выводятся для нового адреса. Если так рассуждать, то и для их вывода адрес объекта не используется?
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru