Conceito de Classe (Private Public),

Dependencies:   mbed

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?

UserRevisionLine numberNew 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 }