zello ha scritto:per quanto java sia un linguaggio a mio parere piuttosto idiota
Perchè scusa?
Moderatori: Anthony47, Triumph Of Steel, archimede
zello ha scritto:per quanto java sia un linguaggio a mio parere piuttosto idiota
class A
{
public:
A(){}
~A(){}
};
int main()
{
A a;
...
...
return 0;
}
zello ha scritto:L'effetto collaterale è che - per avere collezioni - devo "castare" ad Object e "ricastare" alla classe specifica (l'ultimo downcasting è necessariamente controllato a runtime), mentre in linguaggi con funzionalità parametriche posso avere collezioni parametrizzate sul tipo degli oggetti, e i cast non sono necessari (si pensi a std::list<T> o agli altri contenitori della STL di c++)
- avere i metodi definiti subito dopo la loro dichiarazione, e non successivamente(come in object pascal o in c++) significa che diventi imbecille per comprendere l'interfaccia della classe.
nella 1.5 ci sono le collection con i template
class A
{
public:
class Property
{
public:
Property(const std::string& value=""):m_value(value){}
const std::string& operator=(const std::string& newvalue){
m_value=value;
//fa ciò che vuole
return m_value;
}
operator const std::string&()const{
return m_value;
}
private:
std::string m_value;
};
Property stringa;
};
zello ha scritto:Non importa come io esco dal main (con un return a metà, lanciando un'eccezione, arrivando fino in fondo), sono sicuro che il distruttore di A viene chiamato.In java non puoi fare nulla del genere (ed infatti sono previsti i blocchi finally, che in c++ non sono necessari).
C'è il garbage collector automatico e, comunque, puoi sempre richiamarlo quando ne hai voglia grazie ai metodi della classe "Runtime
class Locker
{
public:
Locker(Mutex& mutex):m_mutex(mutex){
mutex.lock();
}
~Locker(){
m_mutex.unlock();
}
private:
Mutex& m_mutex;
}
{
Locker l(myMutex)
... altro codice che deve essere eseguito a myMutex acquisito
}
{
myMutex.lock()
try{
...codice da eseguire
}
finally
{
myMutex.unlock();
}
}
synchronized(myLock) {
//codice da eseguire
}
java e c# sono nati per essere imparati al volo e poter sviluppare velocemente senza porsi troppi problemi professionali.
Zello, ma ti sta tanto su la programmazione ad oggetti??
template<class T>
const T& min(const T& one, const T& two){return (one<two?one:two);}
la teoria di dare alla scimmietta un mouse col quale trascinando componenti su un foglio possa creare applicazioni senza sapere cosa c'e' sotto
i migliori programmi del 2024 per Win Autore: MarioLombardi |
Forum: Sistemi Operativi Windows Risposte: 3 |
Voci inutili in Programmi Installati in Pannello di Control Autore: libraio |
Forum: Sistemi Operativi Windows Risposte: 8 |
acuistato nuovo pc ma problemi con alcuni programmi AIUTOO Autore: gianscooby |
Forum: Software Windows Risposte: 1 |
Come Creare un'applet java di un orologio analogico da inse Autore: Maury170419 |
Forum: Applicazioni Office Windows Risposte: 7 |
Visitano il forum: Nessuno e 3 ospiti