salve vorrei sapere la differenza tra questi due codici che non riesco a capire qualè?
perchè l'output del programma A è differente dal programma B ( i programmi differiscono da un solo carattere = & )
Programma A:
Codice PHP:
class CommunicationDevices
{
public:
virtual void which(){
cout<<"This is a common device..."<<endl;
}
};
class MobilePhoneWithGSMSupport: public CommunicationDevices
{
public:
virtual void which(){
cout<<"This is a Mobile Phone...GSM Supported"<<endl;
}
};
class MobilePhoneWithCDMASupport: public CommunicationDevices
{
public:
void which(){
cout<<"This is a Mobile Phone....CDMA Supported"<<endl;
}
};
void whichPhoneUserIsUsing(CommunicationDevices &devices){
devices.which();
}
int main(){
MobilePhoneWithGSMSupport user1;
MobilePhoneWithCDMASupport user2;
whichPhoneUserIsUsing(user1);
whichPhoneUserIsUsing(user2);
}
Programma B:
Codice PHP:
class CommunicationDevices
{
public:
virtual void which(){
cout<<"This is a common device..."<<endl;
}
};
class MobilePhoneWithGSMSupport: public CommunicationDevices
{
public:
virtual void which(){
cout<<"This is a Mobile Phone...GSM Supported"<<endl;
}
};
class MobilePhoneWithCDMASupport: public CommunicationDevices
{
public:
void which(){
cout<<"This is a Mobile Phone....CDMA Supported"<<endl;
}
};
void whichPhoneUserIsUsing(CommunicationDevices devices){
devices.which();
}
int main(){
MobilePhoneWithGSMSupport user1;
MobilePhoneWithCDMASupport user2;
whichPhoneUserIsUsing(user1);
whichPhoneUserIsUsing(user2);
}
1° OUTPUT PRIMO PROGRAMMA
This is a mobile phone... GSM supported
This is a mobile phone... CDMA supported
2° OUTPUT SECONDO PROGRAMMA
This is a common device...
This is a common device...
-----------------------------------------
Non capisco perchè il passaggio tramite puntatore ( &devices ) fa questo effetto sull'output!!
Grazie