出错信息: Sales_data.obj : error LNK2019: 无法解析的外部符号 "class std::basic_istream > & __cdecl read(class std::basic_istream > &,struct Sales_data const &)" (?read@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@std@@AAV12@ABUSales_data@@@Z),该符号在函数 "public: __thiscall Sales_data::Sales_data(class std::basic_istream > &)" (??0Sales_data@@QAE@AAV?$basic_istream@DU?$char_traits@D@std@@@std@@@Z) 中被引用 1>E:\vs_proj\code_7.12\Debug\code_7.12.exe : fatal error LNK1120: 1 个无法解析的外部命令
主函数 #include using std::cout; using std::cerr; using std::cin; using std::endl; #include "Sales_data.h" int main(int argc, char* argv[]) { /*Sales_data total; if(read(cin,total)){ Sales_data trans; while(read(cin,trans)){ if(total.isbn()==trans.isbn()) total.combine(trans); else{ print(cout,total)<<endl; total=trans; } } print(cout,total)<<endl; }else{ cerr<<"not data!"<<endl; }*/ return 0; } 其他函数 #include "Sales_data.h" #include using std::istream; using std::ostream; Sales_data::Sales_data (istream &is) { read(is,*this); } istream &read(istream &is,Sales_data &item) { double price = 0; is>>item.bookNo>>item.units_sold>>price; item.revenue = price * item.units_sold; return is; } ostream &print(ostream &os , Sales_data &item) { os<<item.isbn()<<" "<<item.units_sold<< "<<item.revenue<< "<<item.avg_price(); return os; } Sales_data add( Sales_data &item1,const Sales_data &item2) { Sales_data sum; item1.combine(item2); sum=item1; return sum; } double Sales_data::avg_price() { if(units_sold) return revenue/units_sold; else return 0; } Sales_data& Sales_data::combine(const Sales_data &rhs) { units_sold+=rhs.units_sold; revenue+=rhs.revenue; return *this; } 该函数的声明 : #ifndef SALES_DATA_H #define SALES_DATA_H #include #include using std::istream; using std::ostream; using std::string; struct Sales_data{ //构造函数 Sales_data():bookNo(""),units_sold(0),revenue(0){} Sales_data (string &s):bookNo(s),units_sold(0),revenue(0){} Sales_data (string &s,unsigned n,double p): bookNo(s),units_sold(n),revenue(p*n){} Sales_data (istream &); //成员函数
std::string isbn() const{ return bookNo;}
Sales_data& combine(const Sales_data&);
double avg_price();
//成员变量
std::string bookNo;
unsigned units_sold ;
double revenue ; }; Sales_data add(const Sales_data&,const Sales_data&); ostream &print(ostream &,const Sales_data &); istream &read(istream&,const Sales_data&); #endif 最佳答案: 专家已采纳 书籍的话大部分是伪码,可能还要修改一些部分,还有编译环境的问题都会影响运行。 文章来源:https://ask.csdn.net/questions/269058
|