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
Форумы портала PHP.SU :: Версия для печати :: объясните код
Форумы портала PHP.SU » » Программирование на C++ » объясните код

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

1. kibal4ish - 28 Января, 2013 - 20:03:33 - перейти к сообщению
День добрый. Помогите разжевать новичкам следующий код... Тема классов
Что означают классы и зачем они нужны?

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

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

спасибо
2. OrmaJever - 28 Января, 2013 - 20:15:11 - перейти к сообщению
Зачем нужны классы я думаю вам врядле кто-то обьснит, до этого нужно дойти.
kibal4ish пишет:
x.imaginary
num2.imaginary

просто вызов свойств обьектов. x обьект imaginary публичное свойство, num2 обьект, а imaginary его публичное свойство.
3. Vinyl - 28 Января, 2013 - 20:27:19 - перейти к сообщению
Тут отлично все расписано. Вам никто толком не ответит, что такое классы и зачем они нужны, это слишком широкий вопрос. А по ссылочке я в свое время многое почерпнул (только кнопку " Вперед >>> " внизу страницы не забывайте нажимать Подмигивание )
4. kibal4ish - 28 Января, 2013 - 20:46:37 - перейти к сообщению
Ну мы примерно поняли, что такое класс, можете привести конкретные примеры, где это на практике может понадобиться
5. Vinyl - 28 Января, 2013 - 20:56:09 - перейти к сообщению
kibal4ish пишет:
Ну мы примерно поняли
А тут нельзя примерно понять, тут или понял, или нет.

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

Тоесть мы создаём обьект приложения, затем обьект окна, затем задаём окну размер и перемешаем его на указаное место на экране и отображаем, и затем запускаем цикл обрабоки сообщений. Вобщем классом можно описать что угодно
7. Vinyl - 28 Января, 2013 - 21:52:49 - перейти к сообщению
OrmaJever пишет:
врядле в с++ примет php синтаксис
Ой, сори, не заметил. Спать наверное пора Не понял и опечален

 

Powered by ExBB FM 1.0 RC1