В C ++ более принято определять тела метода внутри или вне определения класса?

Скорее самоочевидный. Мне просто интересно, что было более привычно делать в объектно-ориентированном C ++?

Пример А:

class CarObject{
private:                            //Local Variables
string name;
int cost;
public:
CarObject(string pName, int pCost){     //Constructor with parameters of car name and car cost
name = pName;           //Sets the temporary variables to the private variables
cost = pCost;
}
void getDetails(){cout << name;
cout << cost;

}//Public method that returns details of Car Object
};

Пример Б:

class CarObject{
private:                            //Local Variables
string name;
int cost;
public:
CarObject(string pName, int pCost){     //Constructor with parameters of car name and car cost
name = pName;           //Sets the temporary variables to the private variables
cost = pCost;
}
void getDetails();  //Public method that returns details of Car Object
};
void CarObject :: getDetails(){
cout << name;
cout << cost;
}

0

Решение

Определение вашего класса обычно будет в файле .h, а ваши методы и другие детали реализации — в файле .cpp. Это обеспечивает большую гибкость при управлении зависимостями, предотвращает излишнюю перекомпиляцию при изменении реализаций и является шаблоном, которого ожидает большинство компиляторов и IDE.

Основными исключениями являются: (1) inline функции, которые должны быть короткими / простыми и которые компилятор может выбрать вместо фактического вызова функции, и (2) шаблоны, реализация которых зависит от параметров, переданных им.

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]