2014-02-27 89 views
0

假當我運行bool類型的方法,在C++中,象這樣一個return語句:返回true或C++

bool method() { 
    return true; 
} 

有在控制檯沒有輸出。要得到輸出,我必須這樣做:

bool method() { 
    cout << "true"; 
    return true; 
} 

這是正確的做法嗎?

+6

函數不產生任何控制檯輸出是非常正常的。爲什麼在這種情況下需要它?解釋這可能會得出一個很好的答案。 –

+0

第一個示例中沒有輸出,因爲您沒有要求輸出。只有當你明確地使用產生輸出的結構時,你纔會看到輸出。 – PaulMcKenzie

+1

方法是類的成員函數。你在那裏寫的是一個函數。 –

回答

6

該程序已成功編譯並執行,並輸出1爲true的值。

#include <iostream> 

bool method() { 
    return true; 
} 
int main() 
{ 
    std::cout << method() << std::endl; 
} 

如果你想要的,而不是1就會出現文字真的,你可以寫

#include <iostream> 
#include <iomanip> 

bool method() { 
    return true; 
} 

int main() 
{ 
    std::cout << std::boolalpha << method() << std::endl; 
} 

問題也許也是執行後您的程序關閉窗口,你有沒有時間看結果。您應該在程序的最後插入一些輸入語句,以等待輸入內容。

1

C++不是一種解釋型語言,就像Python,它是一種編譯語言。所以你不要在解釋器上寫函數調用,並打印結果。 您正在編譯您的程序並稍後執行。所以如果你需要在你的程序中輸出一些東西給控制檯,你必須寫一條指令來做到這一點(就像std::cout <<一樣)。

1

將程序的邏輯與其中的輸入/輸出部分分開通常是一個好主意。這樣,您可以更改邏輯而無需更改顯示,反之亦然。

這方面的一個例子可能是(我做了它少了幾分瑣碎):

int operation(int a, int b) { 
    return a + b; 
} 

void process() { 
    int a, b; 
    std::cin >> a >> b; 
    std::cout << operation(a, b); 
} 

這應該即使在直接打印執行功能的輸出語言之後(但它常常不爲了示例程序中的「簡單」)。它在設計更大的系統時會產生巨大的差異。

您可以通過使用「模型 - 視圖 - 控制器」或簡單地將邏輯與IO隔離來了解更多信息。


爲了讓您的特殊例子,你犯了一個功能,這就是獨特的「邏輯」,這是一件好事。你可以在裏面添加打印語句,但是通常分開問題更好。

+0

非常有用的信息。謝謝。 – Bob