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

чем отличается вызов объекта через "." и через "->" - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Разложить числа на простые множители http://www.cyberforum.ru/cpp-beginners/thread34342.html
Здравствуйте, всем. Помогите пожалуйста может кто знает. Как в C++ разложить числа на простые множители. Составить программу, которая выдаёт разложение данного числа N на простые множители. Например 128=2*2*2*2*2*2*2. хоть что нибудь напишите заранее спасибо
C++ При присвоении числа float появляется хвост! присваеваю переменной Float 1.44 получаю 1,44000005722046 может FloatToStr работает некоректно? class computer { public: computer(char *, int, float); String Text(void); private: char name; http://www.cyberforum.ru/cpp-beginners/thread34324.html
Приближенное вычисление значения функции cos(x) Отблагодарю голосами в контакте! C++
Вычислить с точностью е = 10 ^ -4 значение функции ________________________ Представленной рядом в 28 точках, которые наиболее полно охватывают область определения данной функции. Найти точное и ближайшее значение функции, абсолютную и относительную погрешности вычислений в этих точках Добавлено через 44 секунды http://www.cyberforum.ru/attachment.php?attachmentid=3971&d=1242327107 функция
сортировка матрицы C++
Доброго времени суток. Задание: поменять в каждой строке максимальный и минимальный элементы на 0. Я думаю ошибка в функции void SortMatrix(int **X, const int K, const int L). Посмотрите, пожалуйста, в чем проблема. #include <iostream> #include <stdio.h> #include <conio.h> #include <math.h> int **CreateMatrix(const int K,const int L); void FreeMatrix(int **X, const int L);
C++ Builder поиск файлов http://www.cyberforum.ru/cpp-beginners/thread34315.html
Как создать поиск файлов на диске на С++ Builder???? помогите:'( заранее спасибо!
C++ дефрагментатор на С++ Помогите! есть ли у кого-нибуть ссылочка дефрагментатора на С++ с исходниками????буду очень благодарна!! заранее спасибо;) подробнее

Показать сообщение отдельно
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16935 / 5340 / 328
Регистрация: 30.03.2009
Сообщений: 14,354
Записей в блоге: 26
16.05.2009, 18:37     чем отличается вызов объекта через "." и через "->"
Kleyo, ты создаёшь не классы, а экземпляры класса. Если ты вызваешь метод, то у тебя ничто нового не создаётся. Экземпляр класса или указатель на экземпляр - это всего лишь штука, от которой берётся класс, для того, чтобы понять, какую функцию вызывать.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class C
{
  void func (coid);
};
 
class D
{
  void func (coid);
};
 
void main (void)
{
  C c; // экземпляр класса
  C *p = new C; // указатель на экземпляр класса
 
  // Две операции делают одно и то же - вызывают метод C::func
  // Экземпляр класса или указатель класса нужны в данном случае для того, чтобы
  // понять, что вызывается метод func класса C (а не класса D).
  // Плюс неявно передаётся параметр this (последнее относится к отличию
  // между c.func() и d.func()
  c.func();
  p->func();
}
Экземпляр класса создавай где тебе удобно. Приниципально от этого ничто не меняется. Точку надо ставить тогда, когда ты имеешь переменную типа класс (т.е. экземпляр класса), стрелку надо ставить тогда, когда ты имеешь указаетль на класс (т.е. указатель на экземпляр класса). Точка и стрелка - это не более чем синтаксис языка

Цитата Сообщение от alex_x_x Посмотреть сообщение
Evg поселил сомнения насчет терминологии указателей на классы
А в чём конкретно сомнение? Я мог не так выразиться или ты мог не так понять. Если ты начинающий программист - не стесняйся задать вопрос. А то я ещё запутаю тебя своими словами
 
Текущее время: 22:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru