Làm thế nào tôi có thể làm cho một chức năng với cờ như thế nào của Windows CreateWindow (... phong cách | phong cách, ...), ví dụ, một hàm createnum:Làm cách nào để thực hiện các chức năng với thông số cờ? (C++)
int CreateNum(flag flags) //???
{
int num = 0;
if(flags == GREATER_THAN_TEN)
num = 11;
if(flags == EVEN && ((num % 2) == 1)
num++;
else if(flags == ODD && ((num % 2) == 0)
num++;
return num;
}
//called like this
int Number = CreateNum(GREATER_THAN_TEN | EVEN);
Đây có phải là có thể, và nếu vậy, làm thế nào?
Có lẽ bạn có thể làm cho enum của bạn dài hơn, để làm cho rõ ràng nó đã được quyền hạn của hai? – KeatsPeeks
+1. như là một sang một bên, nó là không cần thiết để so sánh cờ với "== MyFlags :: EVEN", vì nó sẽ là số không hoặc không khác, mà tự động coerces để bool khá độc đáo. – rmeador
Tôi không nghĩ rằng có thể vượt qua hai (hoặc nhiều hơn) cờ bằng cách sử dụng | nếu bạn sử dụng phương pháp này. – danadam