Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: объясните код

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
kibal4ish
Отправлено: 28 Января, 2013 - 20:03:33
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Янв. 2013  


Помог: 0 раз(а)




День добрый. Помогите разжевать новичкам следующий код... Тема классов
Что означают классы и зачем они нужны?

CODE (htmlphp):
скопировать код в буфер обмена
  1. // определение класса комплексных чисел
  2. class Complex {
  3. public:
  4.      int real; // вещественная часть
  5.      int imaginary; // мнимая часть
  6.      void Add(Complex x);  
  7.        // прибавить комплексное число
  8. };
  9. // определение метода сложения
  10. void
  11. Complex::Add(Complex x)
  12. {
  13.      real = real + x.real;
  14.      imaginary = imaginary + x.imaginary;
  15. }
  16. int
  17. main()
  18. {
  19. Complex number;
  20.      number.real = 1;  
  21.              // первый объект класса Complex
  22.      number.imaginary = 3;
  23.      Complex num2;  
  24.              // второй объект класса Complex
  25.      num2.real = 2;
  26.      num2.imaginary = 1;
  27.      number.Add(num2);  
  28.              // прибавить значение второго
  29.              // объекта к первому
  30.      return 1;
  31. }


если можно, то с подробным описанием.

CODE (htmlphp):
скопировать код в буфер обмена
  1. x.imaginary
  2. num2.imaginary

что это за приведение? Радость

спасибо

(Отредактировано автором: 28 Января, 2013 - 20:04:46)

 
 Top
OrmaJever
Отправлено: 28 Января, 2013 - 20:15:11
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




Зачем нужны классы я думаю вам врядле кто-то обьснит, до этого нужно дойти.
kibal4ish пишет:
x.imaginary
num2.imaginary

просто вызов свойств обьектов. x обьект imaginary публичное свойство, num2 обьект, а imaginary его публичное свойство.


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Vinyl
Отправлено: 28 Января, 2013 - 20:27:19
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 645
Дата рег-ции: Янв. 2012  
Откуда: Армавир, Краснодарский край


Помог: 15 раз(а)




Тут отлично все расписано. Вам никто толком не ответит, что такое классы и зачем они нужны, это слишком широкий вопрос. А по ссылочке я в свое время многое почерпнул (только кнопку " Вперед >>> " внизу страницы не забывайте нажимать Подмигивание )


-----
Пессимисты пользуются die(), оптимисты - exit()
 
 Top
kibal4ish
Отправлено: 28 Января, 2013 - 20:46:37
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Янв. 2013  


Помог: 0 раз(а)




Ну мы примерно поняли, что такое класс, можете привести конкретные примеры, где это на практике может понадобиться
 
 Top
Vinyl
Отправлено: 28 Января, 2013 - 20:56:09
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 645
Дата рег-ции: Янв. 2012  
Откуда: Армавир, Краснодарский край


Помог: 15 раз(а)




kibal4ish пишет:
Ну мы примерно поняли
А тут нельзя примерно понять, тут или понял, или нет.

Самый банальный пример - класс пользователя. Пользователь в данном случае есть сущность, у которой есть свойства и методы. Свойства описывают пользователя, методы что-то с ним делают. Например:
PHP:
скопировать код в буфер обмена
  1. $user= new User(); // создаем объект "пользователь"
  2. $user->login(); // логиним пользователя
  3. $name = $user->getName(); //заносим в переменную $name имя этого пользователя
  4. echo $user->age; // выводим возраст пользователя
  5. $user->logout(); // разлогиниваем его
  6.  


-----
Пессимисты пользуются die(), оптимисты - exit()
 
 Top
OrmaJever
Отправлено: 28 Января, 2013 - 21:25:28
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




Vinyl врядле в с++ примет php синтаксис Подмигивание
kibal4ish наверное что бы понять чем классы лучше простых функций вам стоит глянуть на фреймворк qt.
(Добавление)
н вот пример кода с qt создающий простое gui окно с размерами 450x300.
CODE (htmlphp):
скопировать код в буфер обмена
  1. int main(int argc, char* argv[])
  2. {
  3.    QApplication app(argc, argv);
  4.    QMainWindow w;
  5.  
  6.    w.resize(450, 300);
  7.    w.move(100, 100);
  8.    w.show();
  9.  
  10.    return app.exec();
  11. }

Тоесть мы создаём обьект приложения, затем обьект окна, затем задаём окну размер и перемешаем его на указаное место на экране и отображаем, и затем запускаем цикл обрабоки сообщений. Вобщем классом можно описать что угодно


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Vinyl
Отправлено: 28 Января, 2013 - 21:52:49
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 645
Дата рег-ции: Янв. 2012  
Откуда: Армавир, Краснодарский край


Помог: 15 раз(а)




OrmaJever пишет:
врядле в с++ примет php синтаксис
Ой, сори, не заметил. Спать наверное пора Не понял и опечален


-----
Пессимисты пользуются die(), оптимисты - exit()
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на C++ »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB