2011-11-02 37 views
7

Operatörün çalışması için aritmetik elde etmeye çalışıyorum ama bunu yapamıyorum. C++ 'da yeniyim ve hala temelleri öğreniyorum ancak bu operatörü doğru şekilde kullanıp kullanmadığımı merak ediyorum. X < y ise false döndürmesi gerekiyordu. Bunu yapmanın doğru yolu bu mu? Eğer bir başkasını kullanabileceğimin farkındayım ama ben sadece bunu böyle yapıp yapamayacağımı ve eğer yanlış yaptığımı yapabilir miyim diye merak ediyorum.C++ aritmetik eğer operatör

#include <iostream> 
using namespace std; 
int x =0; 
int y =1; 

bool test() 
{ 
    return (x < y) ? true : false; 
} 

int main() 
{ 
cout << test; 
return 0; 
} 
+7

Bunun bir örneği olduğunu biliyorum, ama sadece bu yüzden hiç kimse yanlış fikir alır: bu durumda, sadece 'yazma x

+1

Üçlü operatöre gerek yok, "x Benj

+2

Ayrıca, sadece ilgi için, "cout << std :: boolalpha << test() << endl" – Benj

cevap

9

Sen devlet: bu durumda üçlü operatör sadece yapabileceği beri gereksiz olduğunu

return (x < y) ? false : true; 

Not

O yanlış döndürme varsayalım x < y

Ve eğer (üçüncül) operatörün aritmetiğini öğrenmeye çalışıyorsunuz, bu yüzden elimine etmek için tüm önerileri göz ardı edin.

?'dan sonraki ilk kısım, ifade doğruysa iade edilecek ve :'dan sonraki ikinci bölüm, eğer doğru değilse döndürülen şeydir. Böylece size dönüş değerleri tersine çevrilecek ve bu şekilde olmalıdır:

return (x < y) ? false : true; 
16

Değişim

cout << test; 

Aksi

cout << test(); 

Sizin işlevini demeyeceğiz. Aşağıdaki Ayrıca

:

return (x < y) ? true : false; 

yapmanız çalışıyoruz söylediklerine zıt yapar ("return false eğer x < y").

doğru yoludur:

return !(x < y); 
+2

+1. Derleyicinizdeki uyarı düzeyini yükseltmenin muhtemelen bir işlev göstergesinden "void *" değerine dönüşüm konusunda uyarıda bulunacağını unutmayın. –

+0

-1, OP'nin "x IronMensan