以下是聲明。我相信這是使用一個演員操作符,但後增量的處理是什麼?這個C++語法是什麼意思?
(*C)(x_i,gi_tn,f)++;
宣言和定義的C
:
std::auto_ptr<conditional_density> C(new conditional_density());
的conditional_density
類的聲明:
class conditional_density: public datmoConditionalDensity{
public:
static const double l_min, l_max, delta;
static double x_scale[X_COUNT]; // input log luminance scale
double *g_scale; // contrast scale
double *f_scale; // frequency scale
const double g_max;
double total;
int x_count, g_count, f_count; // Number of elements
double *C; // Conditional probability function
conditional_density(const float pix_per_deg = 30.f) :
g_max(0.7f){
//Irrelevant to the question
}
double& operator()(int x, int g, int f)
{
assert((x + g*x_count + f*x_count*g_count >= 0) && (x + g*x_count + f*x_count*g_count < x_count*g_count*f_count));
return C[x + g*x_count + f*x_count*g_count];
}
};
父類,datmoConditionalDensity
,只有一個虛擬析構函數。
通過調試代碼很容易回答這個問題,但是這個代碼不會在Windows下生成(需要一堆外部庫)。
特定行代碼背後的座右銘是:可讀性是爲了懦夫? – Grizzly
@Grizzly,真正的程序員在一行中完成所有工作......屏幕關閉......在黑暗中......在使用筆時。 :) – riwalk