// stock.h
#ifndef STOCK_H
#define STOCK_H
// declare Stock Class
class Stock
{
private:
string StockExchange;
string Symbol;
string Company;
double Price;
int Shares;
public:
Stock();
Stock(string stockExchange, string symbol, string company, double price, int shares);
void displayStockInfo();
void setStockInfo(string stockExchange, string symbol, string company, double price, int shares);
double getValue();
bool operator < (Stock & aStock);
bool Stock::operator > (Stock & aStock);
};
#endif
[破]
//main.cpp
#include <string>
#include <iostream>
#include <iomanip>
#include <fstream>
#include "stock.h"
using std::string;
using std::endl;
using std::cout;
using std::setw;
using std::ifstream;
// *******************************
// Stock class
Stock::Stock() {
StockExchange = "";
Symbol = "";
Company = "";
Price = 0.0;
Shares = 0;
}
Stock::Stock(string stockExchange, string symbol, string company, double price, int shares) {
StockExchange = stockExchange;
Symbol = symbol;
Company = company;
Price = price;
Shares = shares;
}
// end Stock class
// *******************************
...
我的错误说的是“没有重载函数库存::库存(字符串stockExchange,字符串符号,字符串公司,双倍价格,int股票)的实例”。
我做错了什么?我在头文件中看到了它。
答案 0 :(得分:2)
您在<string>
头文件中未包含stock.h
头文件,即使您在其中使用std::string
也是如此。也许这会导致这个错误消息(如果是这种情况,那么我会说它真的是一个糟糕的消息)。
另一个问题是在Stock
类定义中,你写了这个:
bool Stock::operator > (Stock & aStock);
这是错误的。从中删除Stock::
,并按照以下方式删除:
bool operator > (const Stock & aStock);
//^^^^ add this also (better)
在课堂外定义函数时需要 Stock::
。