0
Simple argument declaration in function
Why there is not in c++ possible to create a function with simple argument declaration like (int x, y, z, a)? Instead of (int x, int y, int z, int a)? // example function int addNumbers(int x, y, z, a) { ... } I believed you can simplify the arguments in that manner in other languages. Isn't that correct?
3 ответов
+ 3
i tried to declare parameters like this in java but it always wants a data type but it works fine outside a method mabe python would do declarations like this.
+ 2
In C, you can actually omit the type of a parameter and it's assumed to be int.
int addNumbers(a, b, c){ ... } // three ints
As far as I'm aware they copied that behaviour over to C++. Eventually removed it, because it just leads to bugs and choosing int as a default is not a better choice than any other type, so why should it be int.
So basically your idea is not a thing in C++ because even if they wanted implement that they couldn't, since not writing a type was already taken up by another feature.
They could add it as a feature now, but I guess there isn't really a big usecase and it's not a massive timesaver. Chances are that if all your functions take 4 ints, you should pack the 4 ints into a class, like
struct Point{ int x,y,z,a; }
addNumbers(Point& p){ ... }
to make your code even less repetitive.
I'm not aware of any language that does it they way you describe, it's an interesting idea though!
EDIT: Maybe I'm also wrong and it's the best feature on earth, it's just that nobody has ever thought of it. You can always write a proposal to the C++ committee, at https://isocpp.org/std/submit-a-proposal ! C++ is always evolving. I wouldn't count on your feature being added to the language though.
+ 1
@Schindlabua: Thank you.
Also thanks for the nice words :) but I do not think any one ever thought of that. There should be a reason.
I think it is in this manner used in VBA or Pascal.