I need to construct the object on the moment of it's declaration since it's const, but I can't seem it get the right syntax.
No, you can only initialize non-integral types - const or not (at least pre-C++11) in the constructor initializer list:
class C {
private:
const std::pair<int,int> corner1;
C() : corner1(1,1) {}
};
But it seems to me like you don't need to replicate the member in every instance, so I'd just make it static instead:
class C {
private:
static const std::pair<int,int> corner1;
};
//implementation file:
const std::pair<int,int> C::corner1(1,1);