Oppure

Loading
08/04/13 0:01
MirkoDistefano
Salve a tutti,
fino ad ora ho sempre programmato su un computer Windows in VB.Net su Visual Basic Express 2010.
Ho da poco comprato un Mac, e vorrei imparare a programmare in C++. Premetto che il mio intento sarebbe quello di programmare software multipiattaforma in C++ con interfaccia grafica.
Con questo intendo, la mia domanda era da dove potrei cominciare.
Ho appena installato XCode e quando creo un nuovo progetto mi dice di scegliere il tipo tra:

Cocoa Application - Cocoa-AppleScript Application - Command Line Tool

Che differenza c'è tra i tre tipi. Visto che il mio intento è programmare Multipiattaforma con GUI.
Vi chiedo una spiegazione passo passo e semplificata in quanto sono stato abituato a programmare su Visual Basic Express dove prendi un Button e lo trascini in un Form xD
Grazie in anticipo per la risposta.

P.S. Non per forza devo usare XCode, ma va bene anche qualche altro IDE.

aaa
08/04/13 1:29
LittleHacker
Postato originariamente da MirkoDistefano:

Salve a tutti,
fino ad ora ho sempre programmato su un computer Windows in VB.Net su Visual Basic Express 2010.
Ho da poco comprato un Mac, e vorrei imparare a programmare in C++. Premetto che il mio intento sarebbe quello di programmare software multipiattaforma in C++ con interfaccia grafica.
Con questo intendo, la mia domanda era da dove potrei cominciare.
Ho appena installato XCode e quando creo un nuovo progetto mi dice di scegliere il tipo tra:

Cocoa Application - Cocoa-AppleScript Application - Command Line Tool

Che differenza c'è tra i tre tipi. Visto che il mio intento è programmare Multipiattaforma con GUI.
Vi chiedo una spiegazione passo passo e semplificata in quanto sono stato abituato a programmare su Visual Basic Express dove prendi un Button e lo trascini in un Form xD
Grazie in anticipo per la risposta.

P.S. Non per forza devo usare XCode, ma va bene anche qualche altro IDE.



Lascia stare XCode, è pesante e poi, se non ricordo male, è ottimizzato solo per Object-C! Usa un semplice Editor di testi per ora!

1° Hai qualche base di C/C++, almeno i tipi di variabili?
2° Hai già provato a scrive un piccolo programma(anche un semplice Hello World) in C/C++?
3° C/C++ non è facile come VB.NET!

Ti mostro un Hello World in C++:
#include <iostream> // Richiama le librerie
#include <stdio.h> // Richiama le librerie

using namespace std; // Dice di usare il namespace std

int main(int argc, char *argv[]) // In VB.NET è uguale a Sub Main
{ // La parentesi graffa aperta dice che da qui iniziano le istruzioni
        char c; // Inizializzo una variabile c con tipo char
        cout << "Hello World!" << endl; // cout scrive a schermo quello che c'è dopo << e endl fa andare a capo
        c = getchar(); // Questa quando viene premuto un tasto, scrive il valore sulla variabile "c"
        while(c != '\n'); // Questo è un ciclo infinito che dice: Finché "c" è diversa da "INVIO" allora continua a controllare la variabile "c", altrimenti vai alla prossima linea
        return 0; // Questo ritorna "0", cioè chiudi il programma senza errori!
} // Qui finiscono le istruzioni, dopo di questa non è più possibile inserire istruzioni...tipo End Sub


Quel using namespace std; serve per abbrebiare il codice, se non si metteva allora il codice diventava così:
#include <iostream>
#include <stdio.h>

int main(int argc, char *argv[])
{
        char c;
        std::cout << "Hello World!" << std::endl; <-- Qui la modifica
        c = getchar();
        while(c != '\n');
        return 0;
}


In questo codice è poca roba, ma pensa un codice dove ci devono essere 20 o più cout e endl! Diventa un casino per chi lo programma e per li lo deve leggere!

Di sicuro non è la spiegazione migliore, ma è una spiegazione! :k:

P.S: int main(int argc, char *argv[]) è qualcosa di più di un semplice sub main! Se vai ad eseguirlo da Terminale, puoi fare una cosa del genere:
#include <iostream>
#include <stdio.h>

using namespace std;

int main(int argc, char *argv[])
{
        char c;
        cout << argv[1] << endl;
        c = getchar();
        while(c != '\n');
        return 0;
}


Tu nel terminale scrivi: main Hello, lui a schermo di scriverà Hello! :heehee:
Comunque ti consiglio di comprarti un libro o scaricarti da internet un pdf gratuito(:nono: illegale) sulle basi del C++!

Ti posso dare delle dritte:
Cerca su internet Compilatore C++ per Mac!
Editor di testi C++ con highlight text (colora il codice, tipo #include <>, char, while, return, etc.)
E poi lmgtfy.com/#!
Ciao :k:
aaa
08/04/13 9:03
MirkoDistefano
Ciao intanto grazie per la risposta.
Comunque si, per ora so fare solo qualcosa di semplicissimo. Variabili, Ciclo For Next, Ciclo While ecc..
Comunque volevo sapere che cos è l'Objective C?
Che cos è Cocoa Application?

Mi sono scaricato dall' App Store come editor "TextWrangler" che dovrebbe riconoscere anche il C++.
Poi mi sono scaricato come compilatore "gcc".
Solo che quando salvo un progetto su TextWrangler ad esempio:

Hello.c (e lo salvo nella scrivania)

Come devo fare per compilarlo?Devo scrivere qualcosa nel terminale?Devo impostare qualcosa su gcc?
aaa
08/04/13 18:16
LittleHacker
L'object C è un'estensione a oggetti del C! C'è una bella spiegazione su Wikipedia!

gcc è per il C, tu devi usare il g++!

E poi l'estensione file .c è per il C, tu devi dare l'estensione .cpp

Comunque vai nel terminale e inserirsci
cd /* il percorso per la scrivania */
g++ Hello.cpp -o Hello


Se la compilazione è andata a buon fine(senza errori), sulla scrivania ti comparirà il file Hello(eseguibile), allora da terminale digita
./Hello "qui vanno gli argomenti(se il programma li richiede)"

:k:
Ultima modifica effettuata da LittleHacker 08/04/13 18:16
aaa
08/04/13 18:52
MirkoDistefano
Potresti spiegarmi invece cosa sono le librerie GUI? E se cambiano in base al sistema operativo
aaa
08/04/13 19:29
MirkoDistefano
Potresti darmi il tuo indirizzo Msn se lo hai, cosi posso chiederti più velocemente :D
aaa
09/04/13 0:06
LittleHacker
Postato originariamente da MirkoDistefano:

Potresti darmi il tuo indirizzo Msn se lo hai, cosi posso chiederti più velocemente :D


Questo lo dovresti chiedere in PM! :ot: Comunque ti ho inviato un PM con il mio indirizzo Msn, però domani non so se sarò disponibile, ti invierò un PM se sarò disponibile :k: :ot:
aaa