Problema con visual studio

di il
15 risposte

Problema con visual studio

Sto creando un semplice progetto su visual studio e ho iniziato a implementare una classe separando interfaccia e implementazione e il codice principale in tre file. Il problema è che compilando visual studio mi dice che l'oggetto cout non è stato dichiarato. Non so perchè ma penso sia legato a qualche problema col namespace. Potreste aiutarmi per favore? Posto il codice qui sotto.
Interfaccia della classe:

#pragma once
#ifndef DATA_H_INCLUDED
#define DATA_H_INCLUDED
#include <string>

class Data
{
public:
	Data(int gg, int mm, int aa);
	std::string formato_breve();

	int get_mese() { return mese; };



private:
	int giorno = 1, mese = 1, anno = 1970;
};
#endif 
Implementazione della classe:

#include "data.h"

Data::Data(int gg, int mm, int aa)
{
	if (gg >= 1 && gg <= 31)
		giorno = gg;
	if (mm >= 1 && mm <= 31)
		mese = mm;
	if (anno >= 1970)
		anno = aa;
}
std::string Data::formato_breve()
{
	return std::to_string(giorno) + "/" + std::to_string(mese) + "/" + std::to_string(anno);
}
Codice principale:

#include <iostream>
#include "stdafx.h"
#include "data.h"
using namespace std;

int main()
{
	Data d(16, 8, 2018);
	cout << "Oggi e' il: " << d.formato_breve() << endl;

	system("pause");
    return 0;
}

15 Risposte

  • Re: Problema con visual studio

    La linea

    #include "stdafx.h"

    deve essere la prima di tutte, poi tutto il resto.

    (e quel system non serve ...)
  • Re: Problema con visual studio

    Non ho capito perchè l'rdine degli include varia il funzionamento del codice, ma facendo così mi sono usciti 384 errori, e poi il system lo metto perchè senno si chiude immediatamente la shell
  • Re: Problema con visual studio

    Ho risolto quei problemi ma ora ne ho 3. Uno dice che ho 2 esterni non risolti, gli altri due nell'immagine qui sotto:
    Cattura.PNG
    Cattura.PNG

  • Re: Problema con visual studio

    Nel file data.cpp (l'hai aggiunto al progetto vero?) all'inizio devi inserire

    #include "stdafx.h"

    Il system non ti serve, ci pensa Visual Studio se esegui con Ctrl-F5

    (e ovviamente questa if (mm >= 1 && mm <= 31) è sbagliata ...)
  • Re: Problema con visual studio

    Il file data.cpp è nella cartella del nome del progetto e ho incluso quel header ma continua a dare gli stessi problemi. Ho tolto l'ifndef e define visto che basta il pragma once. Per quanto riguarda l'if una piccola dimenticanza nel copia e incolla dalla riga superiore. Potresti dirmi se è importante l'ordine in cui si includono le librerie, anche se la stdfx.h l'ho messa sempre per prima.
  • Re: Problema con visual studio

    A prima vista si direbbe che non hai inserito il data.cpp tra i source files del progetto.
  • Re: Problema con visual studio

    Il file data.cpp deve essere aggiunto ai file origine del progetto altrimenti non viene compilato
  • Re: Problema con visual studio

    La cartella del progetto è organizzata in questo modo: cartella principale/nome progetto, debug, soluzione visual studio. Io ho messo il file data.cpp nella cartella nome del progetto
  • Re: Problema con visual studio

    Devi mostrare l'elenco dei file nel progetto di Visual Studio, non le cartelle nel tuo computer.
    Allegati:
    9500_5cb1811830bf233296308ed8a5ae81a4.png
    9500_5cb1811830bf233296308ed8a5ae81a4.png
  • Re: Problema con visual studio


    Cattura.PNG
    Cattura.PNG

  • Re: Problema con visual studio

    In effetti qui non compaiono tutti i file che ci sono nella cartella del progetto
  • Re: Problema con visual studio

    Li devi aggiungere altrimenti non li compilerà.

    Leggi la documentazione di base su come si usa Visual Studio, altrimenti avrai sempre degli errori banali.
  • Re: Problema con visual studio

    Perfetto, sono riuscito ad aggiungere i file mancanti, quel che pensavo è che bastava averli nella cartella del progetto. Una curiosità: in che modo l'ordine degli include determina il corretto funzionamento del codice?
  • Re: Problema con visual studio

    Dipende da cosa c'è scritto nell'include, che può essere importante per quello che segue.
Devi accedere o registrarti per scrivere nel forum
15 risposte