The only problem is that Casting already uses the same syntax as providing a constructor arguement.
Widget(obj) Converts obj to a Widget (if it can).
However, in order to have constructor arguements, we would also need method overloading (not happening). I'd love to see method overloading and constructor arguments in Bmax. The advantage constructor arguments has over the factory style creation, is that when you extend your class (inheritance), that same old static function only returns an object of the base type, and can't be overloaded. (As far as I know anyway). A way to get around this would be to have your static function return an object, but then you would have to cast the object to your new type whenever you wanted to use it.
I'm ALL FOR private, and public access modifiers though.
There are some members that you don't want to expose to the public. ;)
Widget(obj) Converts obj to a Widget (if it can).
However, in order to have constructor arguements, we would also need method overloading (not happening). I'd love to see method overloading and constructor arguments in Bmax. The advantage constructor arguments has over the factory style creation, is that when you extend your class (inheritance), that same old static function only returns an object of the base type, and can't be overloaded. (As far as I know anyway). A way to get around this would be to have your static function return an object, but then you would have to cast the object to your new type whenever you wanted to use it.
I'm ALL FOR private, and public access modifiers though.
There are some members that you don't want to expose to the public. ;)