2011-04-29 7 views
0
// 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 

[휴식]C++ : 오버로드 된 함수의 인스턴스가 없습니까?

//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 
// ******************************* 

... 

내 오류가 오버로드 기능을 재고없이 예 "의 라인 : 주식 (문자열 증권 거래소, 문자열 기호, 문자열 회사, 이중 가격, INT 주)을 따라 뭔가가 존재 말한다 . "

내가 뭘 잘못하고 있니? 내 헤더 파일에서 볼 수 있습니다.

+0

"내 오류가 ..."어디서 말합니까? 이와 같은 오류는 일반적으로 통화 시점에서보고됩니다. 내가 제공 한 코드에는 어떤 호출도 표시되지 않습니다. – AnT

+1

컴파일러에서 오류를보고하는 줄에 코드와 실제 오류 메시지를 게시하십시오. –

+0

코드를 오류를 보여주기 위해 필요한 가장 작은 예제로 줄이고 전체 결과를 다시 게시하십시오. – NPE

답변

2

std::string을 사용하고 있어도 stock.h 헤더 파일에 <string> 헤더 파일을 포함하지 않았습니다. 어쩌면 그것이이 오류 메시지를 일으키는 것일 수 있습니다 (그럴 경우 실제로는 나쁜 메시지라고 말합니다).

또 다른 문제는 Stock 클래스 정의에서, 당신이 작성한 것입니다 : 잘못

bool Stock::operator > (Stock & aStock); 

. 그것에서 Stock::을 제거하고이를 좋아합니다 클래스 외부 함수를 정의 할 때

bool operator > (const Stock & aStock); 
       //^^^^ add this also (better) 

Stock::이 필요합니다.

+0

선언되지 않은 유형이 자동으로 int가 되었기 때문에 이것이 발생 했습니까? – schoetbi

+0

@schoetbi C++에는 없습니다. –

+0

그게 문제였던 것 같습니다. #include와 비슷한 것을 어디에 넣어야하는지 매우 혼란 스럽습니다. 그들이 헤더 파일에 있어야합니까? 헤더 파일 #include 다음 main.cpp에 #include 이 포함 된 경우 어떻게됩니까? 컴파일 오류가 발생하지 않습니까? – Skinner927

관련 문제