У меня есть класс Логического И, конструктор должен оценить и работу двух булевых, и она работает так:ЬурейеГо, перечисление, BOOL, Bool ------ спутать
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
Существует ужасная путаница в основе второго фрагмента, который вы подавали чуть выше. – Robinson
Есть немного путаницы в основе попыток определить класс для выполнения одной логической операции при построении. 'bool t1 = (m && n);' не кажется достаточно сложным, чтобы требовать больше кода, чтобы отвлечь его. О единственном моменте, который я вижу в нем, - это возможность подключать операции ... но даже тогда, поскольку операция выполняется при построении, код все еще должен принять решение о работе и иметь дело для каждой другой операции, которая может быть выполнена .... – cHao