Skip to content

Instantly share code, notes, and snippets.

@facontidavide
Created November 6, 2017 19:05
Show Gist options
  • Save facontidavide/4abcb2605eb0b00217009070f4bb1151 to your computer and use it in GitHub Desktop.
Save facontidavide/4abcb2605eb0b00217009070f4bb1151 to your computer and use it in GitHub Desktop.
Static variable VS local variable
class FooA
{
public:
FooA(){}
double calculateAnswer(double val)
{
static double prev_val_ = 0;
if( val == 0.0 ) return 0.0;
if( prev_val_ != val)
{
prev_val_ = val;
cached_val_ = longCalculation(val);
}
return cached_val_;
}
private:
double cached_val_;
}
class FooB
{
public:
FooB():prev_val_(0.0) {}
double calculateAnswer(double val)
{
if( val == 0.0 ) return 0.0;
if(prev_val_ != val)
{
prev_val_ = val;
cached_val_ = longCalculation(val);
}
return cached_val_;
}
private:
double cached_val_;
double prev_val_ ;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment