2017-10-10 23 views
-2

は、私たちは、私は演算子(または関数)を定義する方法をbool true = (P v Q) -> R定義ブール論理演算子(V、^、XOR、 - >、<->は)

を持っていると言うので、そのシンボル(V、^、XOR、 - >、< - >)は、ロジックを実行する関数を呼び出しますか?

ので、例では:bool true = P v Q、C++で任意の中置演算子を定義することはできません、あなたはまた、変数名として名trueを使用することはできませんbool or(bool a, bool b)

+1

文字列では、パーサーが必要です。ソースコードでは、これはC++では実現不可能です。 – Quentin

+0

あなたが何を求めているのかは不明です。 'bool true = P v Q'を文字列として取り、それを解析して' boolまたは(bool a、bool b) 'を呼び出す関数を実装する方法を尋ねていますか?もしそうなら、 'or'関数を呼び出すためにどのような値を使うべきですか?答えとどうしたらよいでしょうか? – gurka

+0

有効な演算子をオーバーロードする必要があります。しかし、まず第一に、cで有効な演算子が誰であるかを知る必要があります。演算子 'v'は演算子ではありません。これを考慮してください:' true'は予約語です。このリンクを確認してください:http://en.cppreference.com/w/cpp/language/operators –

答えて

0

を呼び出します。

しかし、C++は、すでに||または、ため&&と、XORのため^または!=boolのため、彼らは同等だ)、およびないため!を提供します。論理的な意味合いが必要な場合は、!P || Qを使用し、iffを使用する場合はP == Qを使用することをお勧めします。

+0

xorは '^'です(キャレットは1つだけです) – gurka

+0

@gurkaああ、私はそれもビット単位ではないと思っていました。私はめったにそれを必要としませんが、私はそれが存在しないことに驚いています。 –

+0

@DanielH、ありがとう、私は論理をよく知っている、私はちょうど私が気づいていなかった解析することなくそれを行う方法があると思った。 – illia

関連する問題