を混同し、コンストラクタは2つのブールのAND演算を評価することになっている、そしてそれはこのように動作します:のtypedef、列挙型は、ブール値、ブール値は------私はlogicANDクラスを持っている
その後class logicAND{
public:
logicAND(bool a,bool b):value(a&&b){}
bool output(){return value;}
private:
bool value;
};
int main(){
bool m=false;
bool n=true;
logicAND t1(m,n);
t1.output();
}
クラスの前に古いスタイルのマクロをいくつか追加しました。
typedef enum { False = 0, True = 1 } Bool;
#define bool Bool
#define true True
#define false False
class logicAND{
public:
logicAND(bool a,bool b):value(a&&b){}
bool output(){return value;}
private:
bool value;
};
int main(){
bool m=false;
bool n=true;
logicAND t1(m,n);
t1.output();
}
私はもう動作しません。大きな問題はコンストラクタ型の不一致にあるようです。
落とし穴、理由、解決策を指摘していただければ幸いです。 ありがとうございました!
...私は尋ねるべきでしょうか?本当の目標は何ですか? – cHao
ちょうど上に書いた2番目の断片の心臓部にはひどい混乱があります。 – Robinson
建設の論理的な操作を1つ行うクラスを定義しようとすると、混乱が生じることがあります。 'bool t1 =(m && n);')は、それを抽象化するためにもっと複雑なコードを必要とするほど複雑ではないようです。その中で私が見るのは、操作を取り込む能力だけですが、コンストラクション時に行われた操作は、コードはまだ操作を決定し、実行できる他の操作の場合があります。 – cHao