Это действительно начинает выводить меня из себя. Когда я их использую, когда нет?
Например, я читал .cpp в связанных списках, объявление класса которых было:
struct CarPart
{
long PartNumber;
char Partname[40];
double UnitPrice;
CarPart *next;
};
class ListOfParts
{
int size;
public:
CarPart *head;
ListOfParts();
~ListOfParts();
const int count() const;
void insert( CarPart *item );
CarPart *retrieve( int pos );
};
С этим кодом, почему мне разрешено писать
ListOfParts *pPart = new ListOfParts();
CarPart *pCarPart = new CarPart;
Для объявления экземпляра ListOfParts требуется (), но не мой CarPart? Это меня смущает. Когда я задавал вопрос раньше, и люди говорили мне, что такое объявление - это функция, которая возвращает объект ListOfParts, но не фактический конструктор. Я предполагаю, что это все еще что-то другое.
Что здесь происходит?
PS: Правильно ли я предположить, что const справа от count () означает, что я не могу изменить какие-либо значения в count?