Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
MIRAMIX
#MRoose
3 / 3 / 3
Регистрация: 22.02.2013
Сообщений: 380
1

Прошу объяснить о ссылках,указателях,стрелке -> и двоеточиях :: очень прошу я не понял синтаксис

11.12.2014, 12:07. Просмотров 323. Ответов 2
Метки нет (Все метки)

Здравствуйте!
Есть конкретно 4 типа:
1)стрелка (->)
2)указатели (*)
3)ссылки (&)
4)2е двоеточий (:

а вопрос:что они собой представляют и что с каким типом данных использовать?

например наследование это :: как я понял и пример это std::cout
из указателей понял что можно писать
C++
1
int* c
или
C++
1
int *c
и все к сожалению)) а как использовать указатели для чего они?

ссылки тоже не понял их применять к чему?

а стрелку тем более не понял.

Пожалуйста объясните хотя бы каждый по пункту

и еще когда использовать точку (.)?

конкретно ответьте что к чему.

Спасибо заранее
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.12.2014, 12:07
Ответы с готовыми решениями:

Прошу объяснить код С++
здравствуйте, прошу объяснить как для полного нуба простейшими словами данный...

Прошу объяснить первую строку
Здравствуйте, я прохожу на данный момент перегрузку операторов, в общем по...

Прошу объяснить ввод символов
Дело касается самых основ, но что-то ускользнуло от моего понимания. ...

Прошу объяснить работу готовой программы
Что требуется: При описании решения задачи следует отдельно выделить...

Прошу объяснить смысл оператора int**
Встретил в чужом коде следующй оператор: int** вот в таком контексте: ...

2
MrGluck
Модератор
Эксперт CЭксперт С++
8105 / 4957 / 1436
Регистрация: 29.11.2010
Сообщений: 13,451
11.12.2014, 12:23 2
Это не типы, а операторы.

:: оператор области видимости.
например, мы можем объявить структуру
C++
1
2
3
4
struct A
{
    void foo();
};
для реализации этой функции где-то вне места объявления, мы должны явно указать, что она принадлежит A, т.е.
C++
1
2
void A::foo()
{}
Мы можем объявить функцию с именем foo внутри другой структуры и конфликта не будет
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
struct A
{
    void foo();
};
 
struct B
{
    void foo();
};
 
void A::foo()
{}
 
void B::foo()
{}
Также, мы можем уточнять пространство имён. Например так:
C++
1
2
3
4
5
6
7
8
9
namespace A
{
    struct Z{};
};
 
namespace B
{
    struct Z{};
};
И обращаться через
A::Z или B::Z. Конфликтов не будет.
При использовании cout, мы явно указываем его пространство имён (а он находится в namespace std), поэтому и пишем std::cout. Здесь cout - имя объекта.

Добавлено через 2 минуты
При обращении к полям/методам структуры/класса, мы используем оператор .
C++
1
2
3
4
5
6
7
struct A
{
    int x;
};
 
A a; // объявляем структурную переменную
a.x = 2; // обращаемся к полю этой структурной переменной.
Добавлено через 5 минут
Но это при условии, что структурная переменная объявлена на стеке. А что делать, если она находится в куче?
Тогда нам нужно обращаться к полям/методам, предварительно разыменовывая переменную.

C++
1
2
3
4
5
6
7
struct A
{
    void foo(){}
};
 
A *a = new A; // объявляем указатель на структурную переменную
(*a).foo(); // обращаемся к методу этой структурной переменной.
Так как подобные обращения достаточно частые, решено было упростить синтаксис и объявить специальный оператор -> который является всего лишь сокращением (предоставляет синтаксический сахар).

таким образом, последнюю строку примера выше можно переписать как
C++
1
a->foo();
Код набирал прямо в редакторе сообщений, мог опечататься.
1
MIRAMIX
#MRoose
3 / 3 / 3
Регистрация: 22.02.2013
Сообщений: 380
11.12.2014, 13:55  [ТС] 3
MrGluck, Спасибо конкретно)
то есть стрелка это таже точка?

но с указателями не понял.

что значит
C++
1
void foo(int* a)
"указатель на тип int"?то есть можно это назвать интовый укпзатель?или указатель типа инт
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.12.2014, 13:55

непонятная для меня ошибка прошу объяснить знающих людей
Я обращаюсь с проблемой во вроде бы рабочей программе. Задача была построить...

Очень прошу помочь...
Очень прошу!!! Помогите пожалуйста срочно решить задачи!!!!Ну очень надо.......

Неправильно считает, очень прошу помочь
1: #include <math.h> float epswhile(float x,float eps, float& posl,int& z) {...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru