PracticeDev/study_cpp/cpp_primer_source_code/Chapter 18/somedefs.h

30 lines
571 B
C
Raw Normal View History

2022-12-20 17:31:11 +08:00
// somedefs.h
#include <iostream>
template <typename T, typename F>
T use_f(T v, F f)
{
static int count = 0;
count++;
std::cout << "use_f count = " << count
<< ", &count = " << &count << endl;
return f(v);
}
class Fp
{
private:
double z_;
public:
Fp(double z = 1.0) : z_(z) {}
double operator()(double p) { return z_*p; }
};
class Fq
{
private:
double z_;
public:
Fq(double z = 1.0) : z_(z) {}
double operator()(double q) { return z_+ q; }
};