Thiago .
/
OOP_Exercise
Conceito de Classe (Private Public),
main.cpp@1:371785ebad41, 2015-08-04 (annotated)
- Committer:
- Jamess
- Date:
- Tue Aug 04 13:50:08 2015 +0000
- Revision:
- 1:371785ebad41
- Parent:
- 0:183b60b46e25
- Child:
- 2:f8dd6b50073a
Mais Classes. Ponteiro de Classes. ; ;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Jamess | 1:371785ebad41 | 1 | //Pointer to Classes |
Jamess | 1:371785ebad41 | 2 | |
Jamess | 0:183b60b46e25 | 3 | #include "mbed.h" |
Jamess | 0:183b60b46e25 | 4 | |
Jamess | 0:183b60b46e25 | 5 | DigitalOut turnRightLed(LED1); |
Jamess | 0:183b60b46e25 | 6 | DigitalOut turnLeftLed(LED3); |
Jamess | 0:183b60b46e25 | 7 | |
Jamess | 0:183b60b46e25 | 8 | class Car{ |
Jamess | 0:183b60b46e25 | 9 | |
Jamess | 0:183b60b46e25 | 10 | private: |
Jamess | 0:183b60b46e25 | 11 | uint32_t speed; |
Jamess | 0:183b60b46e25 | 12 | |
Jamess | 0:183b60b46e25 | 13 | public: |
Jamess | 0:183b60b46e25 | 14 | uint32_t getSpeed(void); |
Jamess | 0:183b60b46e25 | 15 | void setSpeed(uint32_t); |
Jamess | 0:183b60b46e25 | 16 | |
Jamess | 0:183b60b46e25 | 17 | void turnRight(void); |
Jamess | 0:183b60b46e25 | 18 | void turnLeft(void); |
Jamess | 0:183b60b46e25 | 19 | void goStraight(void); |
Jamess | 0:183b60b46e25 | 20 | |
Jamess | 0:183b60b46e25 | 21 | }; |
Jamess | 1:371785ebad41 | 22 | |
Jamess | 1:371785ebad41 | 23 | class MotorBike{ |
Jamess | 1:371785ebad41 | 24 | |
Jamess | 1:371785ebad41 | 25 | private: |
Jamess | 1:371785ebad41 | 26 | |
Jamess | 1:371785ebad41 | 27 | uint32_t speed; |
Jamess | 1:371785ebad41 | 28 | |
Jamess | 1:371785ebad41 | 29 | public: |
Jamess | 1:371785ebad41 | 30 | |
Jamess | 1:371785ebad41 | 31 | void setSpeed(uint32_t); |
Jamess | 1:371785ebad41 | 32 | uint32_t getSpeed(void); |
Jamess | 1:371785ebad41 | 33 | |
Jamess | 1:371785ebad41 | 34 | }; |
Jamess | 1:371785ebad41 | 35 | |
Jamess | 1:371785ebad41 | 36 | |
Jamess | 1:371785ebad41 | 37 | int main() { |
Jamess | 1:371785ebad41 | 38 | |
Jamess | 1:371785ebad41 | 39 | Car fusca; |
Jamess | 1:371785ebad41 | 40 | MotorBike harley; |
Jamess | 1:371785ebad41 | 41 | Car *foo; |
Jamess | 1:371785ebad41 | 42 | foo = &fusca; |
Jamess | 1:371785ebad41 | 43 | |
Jamess | 1:371785ebad41 | 44 | while(1){ |
Jamess | 1:371785ebad41 | 45 | |
Jamess | 1:371785ebad41 | 46 | fusca.turnRight(); |
Jamess | 1:371785ebad41 | 47 | wait(1); |
Jamess | 1:371785ebad41 | 48 | fusca.goStraight(); |
Jamess | 1:371785ebad41 | 49 | wait(1); |
Jamess | 1:371785ebad41 | 50 | fusca.turnLeft(); |
Jamess | 1:371785ebad41 | 51 | wait(2); |
Jamess | 1:371785ebad41 | 52 | |
Jamess | 1:371785ebad41 | 53 | foo->turnRight(); |
Jamess | 1:371785ebad41 | 54 | wait(1); |
Jamess | 1:371785ebad41 | 55 | foo->turnLeft(); |
Jamess | 1:371785ebad41 | 56 | wait(1); |
Jamess | 1:371785ebad41 | 57 | |
Jamess | 1:371785ebad41 | 58 | } |
Jamess | 1:371785ebad41 | 59 | |
Jamess | 1:371785ebad41 | 60 | } |
Jamess | 1:371785ebad41 | 61 | |
Jamess | 1:371785ebad41 | 62 | /*---------FUNCTION----------*/ |
Jamess | 0:183b60b46e25 | 63 | |
Jamess | 0:183b60b46e25 | 64 | void Car::turnRight(void){ |
Jamess | 0:183b60b46e25 | 65 | |
Jamess | 0:183b60b46e25 | 66 | turnRightLed = 0; |
Jamess | 0:183b60b46e25 | 67 | turnLeftLed = 1; |
Jamess | 0:183b60b46e25 | 68 | |
Jamess | 0:183b60b46e25 | 69 | } |
Jamess | 0:183b60b46e25 | 70 | |
Jamess | 0:183b60b46e25 | 71 | void Car::turnLeft(void){ |
Jamess | 0:183b60b46e25 | 72 | |
Jamess | 0:183b60b46e25 | 73 | turnRightLed = 1; |
Jamess | 0:183b60b46e25 | 74 | turnLeftLed = 0; |
Jamess | 0:183b60b46e25 | 75 | |
Jamess | 0:183b60b46e25 | 76 | } |
Jamess | 0:183b60b46e25 | 77 | |
Jamess | 0:183b60b46e25 | 78 | void Car::goStraight(void){ |
Jamess | 0:183b60b46e25 | 79 | |
Jamess | 0:183b60b46e25 | 80 | turnRightLed = 1; |
Jamess | 0:183b60b46e25 | 81 | turnLeftLed = 1; |
Jamess | 0:183b60b46e25 | 82 | |
Jamess | 0:183b60b46e25 | 83 | } |
Jamess | 0:183b60b46e25 | 84 | |
Jamess | 1:371785ebad41 | 85 | uint32_t Car::getSpeed(void){ |
Jamess | 1:371785ebad41 | 86 | |
Jamess | 1:371785ebad41 | 87 | return speed; |
Jamess | 0:183b60b46e25 | 88 | |
Jamess | 1:371785ebad41 | 89 | } |
Jamess | 1:371785ebad41 | 90 | |
Jamess | 1:371785ebad41 | 91 | void Car::setSpeed(uint32_t value1){ |
Jamess | 1:371785ebad41 | 92 | |
Jamess | 1:371785ebad41 | 93 | speed = value1; |
Jamess | 0:183b60b46e25 | 94 | |
Jamess | 1:371785ebad41 | 95 | } |
Jamess | 0:183b60b46e25 | 96 | |
Jamess | 1:371785ebad41 | 97 | void MotorBike::setSpeed(uint32_t value2){ |
Jamess | 1:371785ebad41 | 98 | |
Jamess | 1:371785ebad41 | 99 | speed = value2; |
Jamess | 1:371785ebad41 | 100 | |
Jamess | 1:371785ebad41 | 101 | } |
Jamess | 1:371785ebad41 | 102 | |
Jamess | 1:371785ebad41 | 103 | uint32_t MotorBike::getSpeed(void){ |
Jamess | 1:371785ebad41 | 104 | |
Jamess | 1:371785ebad41 | 105 | return speed; |
Jamess | 1:371785ebad41 | 106 | |
Jamess | 1:371785ebad41 | 107 | } |