首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

大家下午好,C++小疑点

2012-03-26 
大家下午好,C++小问题C/C++ code#includeiostream#includefstream#includevector#includestringus

大家下午好,C++小问题

C/C++ code
#include<iostream>#include<fstream>#include<vector>#include<string>using namespace std;class Book{public:    Book():ISBN('\0'),name('\0'),price(0){};    void modify();    void show();    string ISBN;    string name;    float price;};void Book::modify(){    cin>>ISBN>>name>>price;}void Book::show(){    cout<<ISBN<<'\n'<<name<<'\n'<<price<<endl;}vector<Book>B;int Load(){    ifstream in;    int i=0;    in.open("bookdatabase.txt");    if (!in)    {    cerr <<"error: unable to open file"<< endl;    exit(0);    }    while(!in.eof())    {        Book *temp=new Book;        in>>temp->ISBN>>temp->name>>temp->price;        B.push_back(temp);        i++;    }    return i;}int main(){    int i=0,j=0;    i=Load();    for(j;j<i;j++){cout<<B[j].ISBN<<"\n"<<B[j].name<<"\n"<<B[j].price<<"\n";}}

运行时:C:\Users\Administrator.PPTV3-20120303Z\Desktop\a\bm.cpp(39) : error C2664: 'push_back' : cannot convert parameter 1 from 'class Book *' to 'const class Book &'
  Reason: cannot convert from 'class Book *' to 'const class Book'
  No constructor could take the source type, or constructor overload resolution was ambiguous
请问下是什么原因呢,我是新手,自己做的,结果出错了

[解决办法]
不能将引用转换为指针
B.push_back(temp);改成B.push_back(*temp);
[解决办法]
定义的vector<BOOK> B,你B.push_back(temp);
Book *temp=new Book,temp是指针。
[解决办法]
B.push_back(*temp);。。。。

热点排行
Bad Request.