Advertisement
Malinovsky239

struct (#3)

Nov 13th, 2011
188
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.33 KB | None | 0 0
  1. #include <cstdio>
  2.  
  3. struct vect
  4. {
  5.     int x, y;
  6.  
  7.     vect() {}
  8.  
  9.     vect(int a, int b)
  10.     {
  11.         x = a, y = b;
  12.     }
  13.  
  14.     void read() // внутри определения структуры можно объявлять специальные функции - методы
  15.     {
  16.         // например, эта функция читает два числа и записывает их в поля x и y
  17.         scanf("%d %d", &x, &y);
  18.     }
  19. };
  20.  
  21. int operator * (vect a, vect b) {
  22. // для переменных собственного типа можно переопределять арифметические операции
  23. // например, так можно реализовать векторное произведение
  24. // (теперь векторное произведение - результат применения оператора "звёздочка" к двум переменным типа vect)
  25. // результат имеет тип int, поэтому мы пишем "int operator * ", а дальше всё как в обычных функциях
  26.     return a.x * b.y - a.y * b.y;
  27. }
  28.  
  29. int main()
  30. {
  31.     vect v1, v2;
  32.     // обращение к методу производится след. образом: имя_структуры.метод();
  33.     v1.read();
  34.     v2.read();
  35.     printf("%d", v1 * v2);
  36.  
  37.     return 0;
  38. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement