C++ should a function be overloaded or if statement is enough? -
good afternoon everyone.
i have question regarding function overloading in c++.
there big function in class , task make more human readable , reduce it's complexity.
in function, 2 similar code blocks exist. difference in parameters , couple of additional lines.
i want create function out of blocks avoid repeating, how better do? should overload new function or add if statement inside function if 1 parameter has or value, couple of additional lines should executed well?
what best approach?
the function looks this
void f1(){ //some code { //some code block //some other line belongs block //the code block continues } { //the same kind of code block //this line different //the code block continues } //some code }
so, want make function out of code blocks, not same , require different operations performing right in middle. example:
void boo(){ //code block //if(blah) execute additional line //else line //code block }
or overloading
void boo(param1, param2){ //code block //unique line //code block } void boo(param1, param2, param3){ //code block //unique line //code block }
you can change
void boo(param1, param2){ //code block //unique line //code block } void boo(param1, param2, param3){ //code block //unique line //code block }
into
void baa() { // code block1 } void bee() { // code block2 } void boo(param1, param2){ baa(); //unique line bee(); } void boo(param1, param2, param3){ baa(); //unique line bee(); }
or alternatively, pass in lambda function unique line:
void boo(std::function<int()> unique) { // code block int bleh = unique(); // code block }
and call such:
boo([]() { return 1; }); boo([]() { return 3; });
Comments
Post a Comment