Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Insta360 Link 2 Pro e 2C Pro: le webcam 4K che ti seguono, anche con gimbal integrata
Insta360 Link 2 Pro e 2C Pro: le webcam 4K che ti seguono, anche con gimbal integrata
Le webcam Insta360 Link 2 Pro e Link 2C Pro sono una proposta di fascia alta per chi cerca qualità 4K e tracciamento automatico del soggetto senza ricorrere a configurazioni complesse. Entrambi i modelli condividono sensore, ottiche e funzionalità audio avanzate, differenziandosi per il sistema di tracciamento: gimbal a due assi sul modello Link 2 Pro, soluzione digitale sul 2C Pro
Motorola edge 70: lo smartphone ultrasottile che non rinuncia a batteria e concretezza
Motorola edge 70: lo smartphone ultrasottile che non rinuncia a batteria e concretezza
Motorola edge 70 porta il concetto di smartphone ultrasottile su un terreno più concreto e accessibile: abbina uno spessore sotto i 6 mm a una batteria di capacità relativamente elevata, un display pOLED da 6,7 pollici e un comparto fotografico triplo da 50 MP. Non punta ai record di potenza, ma si configura come alternativa più pragmatica rispetto ai modelli sottili più costosi di Samsung e Apple
Display, mini PC, periferiche e networking: le novità ASUS al CES 2026
Display, mini PC, periferiche e networking: le novità ASUS al CES 2026
Sono molte le novità che ASUS ha scelto di presentare al CES 2026 di Las Vegas, partendo da una gamma di soluzioni NUC con varie opzioni di processore passando sino agli schermi gaming con tecnologia OLED. Il tutto senza dimenticare le periferiche di input della gamma ROG e le soluzioni legate alla connettività domestica
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 17-03-2013, 01:10   #1
mistergks
Senior Member
 
L'Avatar di mistergks
 
Iscritto dal: Mar 2011
Messaggi: 1050
[C++] compilare programmini POO: main

Sto studiando la programmazione object oriented.
Ho un problema: scrivo le classi che mi servono (separando .h e .cpp cioe interfaccia e implementazione)e per compilare ho bisogno di un MAIN.. qualcuno sa dirmi come va scritto? All'interno di una classe? Un esempio in modo generico!?
mistergks è offline   Rispondi citando il messaggio o parte di esso
Old 17-03-2013, 02:31   #2
mistergks
Senior Member
 
L'Avatar di mistergks
 
Iscritto dal: Mar 2011
Messaggi: 1050
Quote:
Originariamente inviato da Antonio23 Guarda i messaggi
il main in una classe credo sia una cosa di java et simili. in c++ il main deve essere nel namespace globale, quindi va semplicemente definito in un sorgente come una normalissima funzione. da lì istanzi le tue classi e così via.
Potresti farmi un esempio di main? Come "chiamo" le classi o come le collego con esso?

Inviato dal mio GT-I9003 usando Tapatalk
mistergks è offline   Rispondi citando il messaggio o parte di esso
Old 17-03-2013, 10:39   #3
lorenzo001
Senior Member
 
Iscritto dal: Jul 2008
Città: Roma
Messaggi: 542
Includi i .h con le classi e nel main crei delle istanze

Codice:
#include <classe1.h>

int main()
{
   classe1  istanza;
   ...
   return 0;
}
Ovviamente dovrai indicare al tuo compilatore e al linker di compilare e linkare tutti i .cpp del tuo programma.
lorenzo001 è offline   Rispondi citando il messaggio o parte di esso
Old 17-03-2013, 12:24   #4
mistergks
Senior Member
 
L'Avatar di mistergks
 
Iscritto dal: Mar 2011
Messaggi: 1050
Quote:
Originariamente inviato da lorenzo001 Guarda i messaggi
Includi i .h con le classi e nel main crei delle istanze

Codice:
#include <classe1.h>

int main()
{
   classe1  istanza;
   ...
   return 0;
}
Ovviamente dovrai indicare al tuo compilatore e al linker di compilare e linkare tutti i .cpp del tuo programma.
Istanza sarebbe un oggetto?

Inviato dal mio GT-I9003 usando Tapatalk
mistergks è offline   Rispondi citando il messaggio o parte di esso
Old 17-03-2013, 12:33   #5
mistergks
Senior Member
 
L'Avatar di mistergks
 
Iscritto dal: Mar 2011
Messaggi: 1050
E le liste o vector presenti nelle classi vanno riempite nel main?
mistergks è offline   Rispondi citando il messaggio o parte di esso
Old 17-03-2013, 12:53   #6
lorenzo001
Senior Member
 
Iscritto dal: Jul 2008
Città: Roma
Messaggi: 542
Che c'entra questo? E' la classe che gestisce i propri attributi interni.

Probabilmente ti manca tutta le teoria di base del C++ ... non penso che delle risposte in un forum ti aiuteranno ... usa un buon libro.
lorenzo001 è offline   Rispondi citando il messaggio o parte di esso
Old 17-03-2013, 12:59   #7
mistergks
Senior Member
 
L'Avatar di mistergks
 
Iscritto dal: Mar 2011
Messaggi: 1050
Quote:
Originariamente inviato da lorenzo001 Guarda i messaggi
Che c'entra questo? E' la classe che gestisce i propri attributi interni.

Probabilmente ti manca tutta le teoria di base del C++ ... non penso che delle risposte in un forum ti aiuteranno ... usa un buon libro.
Uso i due libri di deitel&deitel.. altti consigli?

Inviato dal mio GT-I9003 usando Tapatalk
mistergks è offline   Rispondi citando il messaggio o parte di esso
Old 17-03-2013, 13:13   #8
lorenzo001
Senior Member
 
Iscritto dal: Jul 2008
Città: Roma
Messaggi: 542
Quote:
Originariamente inviato da mistergks Guarda i messaggi
altti consigli?
Su cosa?

Scusa ... ma come mai chiedi queste informazioni sul main se stai seguendo dei libri in cui sicuramente ci sono esempi utili ?
lorenzo001 è offline   Rispondi citando il messaggio o parte di esso
Old 17-03-2013, 14:50   #9
vendettaaaaa
Senior Member
 
L'Avatar di vendettaaaaa
 
Iscritto dal: Jan 2012
Messaggi: 1267
Spero sia chiaro che una classe è un tipo di variabile, come "int" o "double".
int a -> a è un oggetto di tipo int.
MyClass b -> b è un oggetto di tipo MyClass.

Tutte le variabili sono sempre oggetti, quindi. Sono istanze di un certo tipo.

Quindi non capisco questa rischiesta sul main...tutti i programmi C++ hanno bisogno di una funzione main, ma non c'è un main apposta per le classi...semplicemente, nel tuo programma (la funzione main) usi variabili di tipo int, MyClass, TuaClasse...

p.s.: altri consigli: Programming: Principles and Practice using C++, di Stroustrup; Accelerated C++, di Koenig e Moo. Entrambi in inglese. Vedi tu.
vendettaaaaa è offline   Rispondi citando il messaggio o parte di esso
Old 17-03-2013, 15:12   #10
mistergks
Senior Member
 
L'Avatar di mistergks
 
Iscritto dal: Mar 2011
Messaggi: 1050
Grazie mille! Volevo sapere questo! Perche avevo visto in giro un main all interno di una classe..
Quindi dal main creo un istanza per ogni classe.. non mi é chiaro il perche devo creare queste istanze.
So che una classe definisce un tipo di dato..
Purtroppo i libri non sempre sono chiari su tutto! Questa cosa del main non la trovo
mistergks è offline   Rispondi citando il messaggio o parte di esso
Old 17-03-2013, 15:57   #11
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3306
Quote:
Originariamente inviato da mistergks Guarda i messaggi
Grazie mille! Volevo sapere questo! Perche avevo visto in giro un main all interno di una classe..
Quindi dal main creo un istanza per ogni classe.. non mi é chiaro il perche devo creare queste istanze.
So che una classe definisce un tipo di dato..
Purtroppo i libri non sempre sono chiari su tutto! Questa cosa del main non la trovo
Escludendo il caso che tu abbia trovato una classe che incidentalmente conteneva un metodo chiamato main, molto più probabilmente ti sei imbattuto in codice C# o Java.
Cosa istanziare nel main dipende dalla logica del tuo programma. Generalmente istanzi una classe che contiene tutta la logica di avvio dell'applicazione.
tomminno è offline   Rispondi citando il messaggio o parte di esso
Old 17-03-2013, 17:04   #12
lorenzo001
Senior Member
 
Iscritto dal: Jul 2008
Città: Roma
Messaggi: 542
Quote:
Originariamente inviato da vendettaaaaa Guarda i messaggi
Spero sia chiaro che una classe è un tipo di variabile, come "int" o "double".
int a -> a è un oggetto di tipo int.
Quote:
Tutte le variabili sono sempre oggetti, quindi. Sono istanze di un certo tipo.
Non mi risulta che sia così in C++ ...
lorenzo001 è offline   Rispondi citando il messaggio o parte di esso
Old 17-03-2013, 17:07   #13
lorenzo001
Senior Member
 
Iscritto dal: Jul 2008
Città: Roma
Messaggi: 542
Quote:
Originariamente inviato da mistergks Guarda i messaggi
Grazie mille! Volevo sapere questo! Perche avevo visto in giro un main all interno di una classe..
Ma in quale programma C++ l'hai visto?

Ma lo segui il libro o lo hai solamente in libreria ...?

Quote:
Quindi dal main creo un istanza per ogni classe.. non mi é chiaro il perche devo creare queste istanze.
Te l'ho detto prima ... perché non hai chiare i concetti di base del C++.

[quote]Purtroppo i libri non sempre sono chiari su tutto! [quote]

Su classe e istanza è chiaro qualsiasi libro di C++.

Quote:
Questa cosa del main non la trovo
Il main è una semplice funzione, come per il C.
lorenzo001 è offline   Rispondi citando il messaggio o parte di esso
Old 18-03-2013, 07:59   #14
The_ouroboros
Senior Member
 
L'Avatar di The_ouroboros
 
Iscritto dal: May 2007
Città: Milano
Messaggi: 7103
Java != C++

Prendi un libro di C++, vai a pagina 1 e leggilo, poi torni qui e ne riparliamo
__________________
Apple Watch Ultra + iPhone 15 Pro Max + Rog Ally + Legion Go
The_ouroboros è offline   Rispondi citando il messaggio o parte di esso
Old 18-03-2013, 08:31   #15
vendettaaaaa
Senior Member
 
L'Avatar di vendettaaaaa
 
Iscritto dal: Jan 2012
Messaggi: 1267
Quote:
Originariamente inviato da mistergks Guarda i messaggi
.. non mi é chiaro il perche devo creare queste istanze.
Istanza di una classe è come dire oggetto.
int a -> a è una istanza del tipo int, cioè una variabile int, cioè un oggetto di tipo int.

@lorenzo: ci sono variabili che non sono oggetti?? Ad esempio?
vendettaaaaa è offline   Rispondi citando il messaggio o parte di esso
Old 20-03-2013, 18:38   #16
mistergks
Senior Member
 
L'Avatar di mistergks
 
Iscritto dal: Mar 2011
Messaggi: 1050
sottopongo alla vostra attenzione questo codice di esempio...per capire come fare a compilare ed eseguire i programmi:

Codice:
//MAIN.cpp:

#include "Enoteca.h"
#include "BottigliaDiVino.h"
#include <iostream>

using namespace std;

int main()
{
  Enoteca e;

  BottigliaDiVino a(Barbera,2000,"p1",23);
  BottigliaDiVino b(Barbera,2000,"p2",67);
  BottigliaDiVino c(Gaglioppo,1900,"p2",67);
  BottigliaDiVino d(Merlot,1900,"p2",67);
  BottigliaDiVino f(Merlot,1900,"p3",25);


      

	e.aggiungiBottiglia(a);
	e.aggiungiBottiglia(b);
	e.aggiungiBottiglia(c);
	e.aggiungiBottiglia(d);
	e.aggiungiBottiglia(f);
	
	
	

	list<Vitigno> listaProd= e.vitigniAlmenoDueProduttori();
  for(list<Vitigno>::iterator it=listaProd.begin(); it!=listaProd.end(); it++)
  	cout<<*it<<endl;


return 0;
}
Codice:
Enoteca.h


#ifndef FRUTTIVENDOLO_H
#define FRUTTIVENDOLO_H

#include "BottigliaDiVino.h"
#include <cstdlib>
#include <iostream>
#include <list>
using namespace std;

class Enoteca
{

    private:
        list<BottigliaDiVino> vini;

    public:

        /**
         * Il metodo inserisce una bottiglia di vino nell'enoteca,
         * in particolare, quando una nuova bottiglia viene inserita
         * -Nota: l'inserimento (push_back) va sempre fatto-
         * se la bottiglia e' gia' presente in cantina
         * ma con prezzo differente, viene
         * aggiornato il prezzo di tutte le bottiglie
         * uguali (secondo l'operatore== della classe BottigliaDiVino)
         * presenti in cantina e il metodo restituisce true
         *
         * Altrimenti, se non vi e' stato aggiornamento di prezzo
         * il metodo restituisce false
         */
        bool aggiungiBottiglia(BottigliaDiVino b);

        /**
         * Restituisce l'annata per la quale in cantina
         * e' presente il maggior numero di bottiglie
         *
         * In caso vi sia piu' di una annata che ha questa caratteristica
         * il metodo restituisce quella piu' vecchia
         *
         * Se la cantina e' vuota il metodo restituisce -1
         */
        int annataPiuIngombrante();

        /**
         * Fissata una annata, il metodo restituisce il
         * valore complessivo totale (calcolato come somma dei prezzi)
         * di tutti e soli i vini piu costosi di quella annata
         *
         * Se non vi sono vini in quella annata il metodo
         * restituisce -1
         */
        int valorePiuCostose(int annata);

        /**
         * Restituisce la lista dei vitigni per i quali
         * in cantina sono presenti bottiglie di almeno
         * due produttori
         */
        list<Vitigno> vitigniAlmenoDueProduttori();
        
        
        

	void stampa();

        inline list<BottigliaDiVino>& getContent();
};

list<BottigliaDiVino>& Enoteca::getContent()
{
    return vini;
}

#endif
Codice:
BottigliaDiVino.h


#ifndef BOTTIGLIA_DI_VINO_H_
#define BOTTIGLIA_DI_VINO_H_

#include<string>
#include <iostream>
using namespace std;

enum Vitigno {None = 0, Barbera, Falanghina, Gaglioppo, Malvasia, Merlot, Nebbiolo};

class BottigliaDiVino
{
private:
    Vitigno nome;
    int annata; //intero >= 1945 e <= 2009
    string produttore;
	int prezzo; //intero > 10

public:
	BottigliaDiVino(Vitigno=None, int=0, string="", int=0);

	/* Due "bottiglie" sono uguali se tutti i campi tranne il prezzo sono uguali */
	bool operator==(const BottigliaDiVino&) const;

	Vitigno getNome() const;
    void setNome(Vitigno nome);

    int getAnnata() const;
    void setAnnata(int annata);

    string getProduttore() const;
    void setProduttore(string produttore);

    int getPrezzo() const;
    void setPrezzo(int prezzo);
    
    void stampa()const;
};

#endif
sono 3 files: MAIN.cpp Enoteca.h e BottigliaDiVino.h
in fase di compilazione mi da degli errori: Linker error.
mistergks è offline   Rispondi citando il messaggio o parte di esso
Old 20-03-2013, 23:28   #17
mistergks
Senior Member
 
L'Avatar di mistergks
 
Iscritto dal: Mar 2011
Messaggi: 1050
Uppino
mistergks è offline   Rispondi citando il messaggio o parte di esso
Old 20-03-2013, 23:46   #18
vendettaaaaa
Senior Member
 
L'Avatar di vendettaaaaa
 
Iscritto dal: Jan 2012
Messaggi: 1267
Se il codice è solo quello, mancano le definizioni delle funzioni membri delle classi. Dovrebbero esserci "BottigliaDiVino.cpp" e "Enoteca.cpp" con dentro le definizioni ad esempio di setPrezzo().
vendettaaaaa è offline   Rispondi citando il messaggio o parte di esso
Old 21-03-2013, 00:26   #19
mistergks
Senior Member
 
L'Avatar di mistergks
 
Iscritto dal: Mar 2011
Messaggi: 1050
Quote:
Originariamente inviato da vendettaaaaa Guarda i messaggi
Se il codice è solo quello, mancano le definizioni delle funzioni membri delle classi. Dovrebbero esserci "BottigliaDiVino.cpp" e "Enoteca.cpp" con dentro le definizioni ad esempio di setPrezzo().
Si ci sono! Pero non le ho postate!

Inviato dal mio GT-I9003 usando Tapatalk
mistergks è offline   Rispondi citando il messaggio o parte di esso
Old 21-03-2013, 11:47   #20
mistergks
Senior Member
 
L'Avatar di mistergks
 
Iscritto dal: Mar 2011
Messaggi: 1050
Quote:
Originariamente inviato da Antonio23 Guarda i messaggi
g++ main.cpp BottigliaDiVino.cpp Enoteca.cpp -o MioEseguibile

?
Compilo su windows!

Inviato dal mio GT-I9003 usando Tapatalk
mistergks è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Insta360 Link 2 Pro e 2C Pro: le webcam 4K che ti seguono, anche con gimbal integrata Insta360 Link 2 Pro e 2C Pro: le webcam 4K che t...
Motorola edge 70: lo smartphone ultrasottile che non rinuncia a batteria e concretezza Motorola edge 70: lo smartphone ultrasottile che...
Display, mini PC, periferiche e networking: le novità ASUS al CES 2026 Display, mini PC, periferiche e networking: le n...
Le novità ASUS per il 2026 nel settore dei PC desktop Le novità ASUS per il 2026 nel settore de...
Le novità MSI del 2026 per i videogiocatori Le novità MSI del 2026 per i videogiocato...
ESA presenta ASTRIS, per rendere pi&ugra...
Ryanair non utilizzerà Starlink s...
Prince of Persia Remake potrebbe essere ...
Fujifilm annuncia la nuova stampante ist...
Arriva Red Hat Enterprise Linux for NVID...
Il marchio Volkswagen Jetta torna, ma or...
L'odio verso Electronic Arts è sp...
HONOR Magic 8 Pro: promosso da DXOMARK m...
instax mini Evo Cinema: la nuova soluzio...
YouTube mette un freno agli Shorts: i ge...
Dreame L40 Ultra AE di nuovo a 499€ su A...
I consigli per l'upgrade del proprio PC:...
Il cloud per i criminali? Si chiamava Re...
SpaceX si aggiudica un contratto da 739 ...
Nuove analisi di Geotab: la ricarica fas...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 21:45.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v