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

Поля, переменные; Методы, функции; В чем отличие? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как переделать через указатели? http://www.cyberforum.ru/cpp-beginners/thread1103048.html
#include "stdafx.h" #include <iostream> #include <math.h> using namespace std; int main() { float u,v,n,h,x,y; cout <<" vvedite promejutok ot u do v, i n"<<endl; cin>>u>>v>>n;
C++ Ошибка при работе функции в классе В классе есть функция - double AM(void); - она должна складывать поэлементно массивы i и q, которые я сам создаю. Но, судя по результатам, вместо сложения происходит просто умножение на 2 элементов... http://www.cyberforum.ru/cpp-beginners/thread1103030.html
Создать класс Book. Переменная типа Book должна содержать следующие поля: C++
Помогите решить=(. Создать класс Book. Переменная типа Book должна содержать следующие поля: название, количество авторов; авторы; год издания, количество страниц. Предусмотреть функции для...
C++ Напишите программу, которая приглашает пользователя ввести три результата забега на 40 ярдов
Напишите программу, которая приглашает пользователя ввести три результата забега на 40 ярдов (или 40 метров, если желаете) и затем отображает эти значения и их среднее. У меня получилось вот...
C++ разветвляющие вычислительные процессы http://www.cyberforum.ru/cpp-beginners/thread1102994.html
помогите сделать лапу по программировать!
C++ Исключения: индекс массива Суть такова: нужно написать прогу, контролирующую индексы, которые выходят за пределы массива и генерирует исключения. В ошибке должна быть инфа о значении индекса, приведшего к сбою. Что-то... подробнее

Показать сообщение отдельно
DrOffset
7471 / 4467 / 1015
Регистрация: 30.01.2014
Сообщений: 7,322
22.02.2014, 23:58
Цитата Сообщение от Аммурка Посмотреть сообщение
В классе - поле, нет - переменная?
В общем да.
Есть одно различие во взятии адреса поля. Адрес поля можно записать так:
C++
1
int * pData = &obj.data;
А можно так:
C++
1
int Class::*pData = &Class::data;
В первом случае это будет как бы "абсолютный адрес" (в кавычках потому, что тут есть нюансы связанные уже с распределением и организацией памяти в системе и конкретно в приложении, которые выходят за рамки темы)
А во втором случае будет адрес относительный (проще говоря - смещение), относительно адреса объекта класса. Чтобы получить через него значение нужен второй компонент - сам объект (или его адрес):
C++
1
std::cout << (obj.*pData) << std::endl;
Адреса методов могут быть взяты только вторым способом.
Но вряд ли вы такое проходили
2
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.