2011-09-15 22 views
3

我想通過C++教科書來學習一些編程,但我遇到了一些示例代碼的問題。我們的目標是編寫一個簡單的計算器程序,文本提供部分代碼作爲示例。一部分是:C++初學者 - '錯誤'作爲代碼中的命令

if(!cin)error(「no second operand」);

該文本使得它看起來像'錯誤'將輸出後面的文本,如果您的輸入是不正確的,但我的編譯器只是說'錯誤'尚未定義。我是一字一句地從文本中複製代碼,所以我不確定是否用編譯器丟失了某些東西,或者如果我誤解了我應該如何編寫代碼。任何人都可以提供一些建議

+0

之前一直用這個誤差函數?作爲代碼示例可能?這可能是教科書期望你也包含該代碼。 –

+4

通常書籍定義他們自己的錯誤函數,例如「void error(const char * str){printf(str); exit(1);} ...檢查你的書 –

回答

1

我認爲這本書是Stroustrup的編程原則和實踐? 查看頁面149和150,在那裏解釋。

將這個代碼在頭文件,它包含在示例程序:

#include <stdexcept> 

void error(string s) 
{ 
    throw runtime_error(s); 
} 

void error(string s1, string s2) 
{ 
    throw runtime_error(s1+s2); 
} 
5

你一定錯過了error()函數的定義 - 它必須在書中某處,因爲它不是C++的特性。

1

也許他們(作者)並不意味着您要編譯該代碼,而只是爲了理解該示例並可能自己實現它。