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