mardi 13 juillet 2021

Difference between Visual studio code and Dev c++

minor question but i need answer too , visual studio let me create a makefile easly , with dev c++ how do i import a makefile ? my idead is just writing a text file with makefile info but than how do i give it to compiler ?

hi people , i'm learing c++ code for an exam.

i created a program and if i compile it in visual studio it runs fine, but the exact same program doesn not compile in dev c++ , can someone tell me why ? The problem seems to be with the vector of string , dev says ("can't convert const char* in vector<basic )something like this . but idk why cuz in visul studio it runs fine in fact if i remove that element the project works fine , but ofc i need that element.

here is my code :


    //header(.h) che contiene le info dei libri 
//non separerò le definizioni delle funzioni dalle implementazioni per tempo quindi farà anche da .cpp
//mi assicuor che la definzione avvenga e sia unica
#ifndef L_h
#define L_h
//includo le librerie e le strutture stl 
#include<sstream>
#include<vector>
#include<string>
#include<iostream>
//non importo tutto il namespace std ma specifico solo gli elementi 
using std::string;
using std::vector;
using std::ostringstream;
using std::cout;

//diichiaro la classe 
class L
{
    friend class Pre;// classe amica per accedere ai dati privati 
    public:
        //costruttore
        L(int b,vector<string> au,string t,double p) :b_id{b},aut{au},tit{t},prezzo{p} {/*empty body*/}
        //funzione di stampa dei libri 
        string toString()
        {
            ostringstream out;
            out<<"Book id:"<<" "<<b_id<<'\n';
            /*out<<"Autori:"<<" ";
            for(int i=0;i<aut.size();++i)
            {
                out<<aut[i]<<'\n';
            }*/
            out<<"Titolo:"<<" "<<tit<<'\n';
            out<<"Prezzo"<<" "<<prezzo<<'\n';
            return out.str();
        }   
    private: 
        int b_id;
        vector<string> aut
        string tit;
        double prezzo;
        
}; //perchè è una definizione 
#endif
//header(.h) che contiene le info della classe prestito 
//.h che farà anche da .cpp
//definzione unica
#ifndef PR_H
#define PR_H
//includo l.h perchè per le funzioni che istanzierò ho bisogno di un riferimento a libro
#include"lib.h"
//includo le librerie e le strutture stl
#include<iostream>
#include<sstream>
#include<string>
#include<list>
//elementi del namespace di cui ho bisogno 
using std::list;
using std::string;
using std::ostringstream;
using std::cout;
using std::endl;

//definisco la classe 
class Pre
{
    friend class L;
    public:
    Pre(int g,int m, int a, int gg, int mm, int aa) : gP{g},mP{m},aP{a},gR{gg},mR{mm},aR{aa} {/*empty body */}
    string toString()
    {
        ostringstream out;
        out<<"Data inizio prestito: "<<gP<<"/"<<mP<<"/"<<aP<<'\n';
        out<<"Data fine prestito:"<<gR<<"/"<<mR<<"/"<<aR<<'\n';
        return out.str();
    }
    
    void Borrow(L &l,Pre &p)
    {
        cout<<"il libro "<<" "<<l.b_id<<endl;
        cout<<"presenta il seguente prestito "<<endl;
        cout<<p.toString();
        prelist.push_back(&p);
    }
        
    private:
    int gP,mP,aP;
    int gR,mR,aR;
    list<Pre*> prelist;
}; //perchè è una definizione 
#endif
//driver della libreria
//definizione unica 
#ifndef DRIV_CPP
#define DRIV_CPP
//includo i due header
#include"lib.h"
#include"pre.h"
//includo le librerie e le strutture stl 
#include<string>
#include<vector>
#include<algorithm>
//elementi del namespace std 
using std::string;
using std::vector;
using std::sort;

int main()
{
    //definisco le strutture dati 
    vector<L*> libvec;
    vector<Pre*>prevec;
    //istanzio gli oggetti 
    L l1(123,{"tizio"},"libro di tizio",40.50);
    L l2(456,{"caio"},"libro di caio",30.67);
    Pre p1(12,5,2020,12,6,2020);
    Pre p2(27,6,2021,27,7,2021);
    //inserisco gli oggetti nelle strutture
    libvec.push_back(&l1);
    libvec.push_back(&l2);
    prevec.push_back(&p1);
    prevec.push_back(&p2);
    //ordino gli elementi nei vettori 
    sort(libvec.begin(),libvec.end());
    sort(prevec.begin(),prevec.end());
    //stampa dei vettori
    for(int i=0;i<libvec.size();++i)
    {
        cout<<"Libro numero :"<<" "<<i<<'\n';
        cout<<libvec[i]->toString();
    }
    
    cout<<"Date di prestito"<<'\n';
    for(int i=0;i<prevec.size();++i)
    {
        cout<<prevec[i]->toString();
    }
    
    //assegnazioni delle date ai libri e stampa
    p1.Borrow(l1,p1);
    p1.Borrow(l2,p2);
}
#endif

ty to all of u

Aucun commentaire:

Enregistrer un commentaire