В C ++ объявление и определение функций, переменных и констант можно разделить так:
function someFunc();
function someFunc()
{
//Implementation.
}
На самом деле, при определении классов это часто имеет место. Класс обычно объявляется с членами в файле .h, а затем они определяются в соответствующем файле .C.
Каковы преимущества и недостатки этого подхода?