Прошу помощи по синтаксису С++

  • Автор темы lebedun
  • Дата начала
L

lebedun

В одной из книг встретил код:

Код:
// faststring.h 
class FastString { 
char *m_psz; 
public: 
FastString(const char *psz); 
~FastString(void); 
int Length(void) const;
// returns # of characters 
// возвращает число символов 
int Find(const char *psz) const;
// returns offset 
//возвращает смещение 
}; 



// FastString.cpp 
#include "faststring.h" 
#include <string.h> 

FastString::FastString(const char *psz) : m_psz(new char [strlen(psz) + 1]) 
{ strcpy(m_psz, psz); } 

FastString::~FastString(void) 
{ delete[] m_psz; } 

int FastString::Length(void) const 
{ return strlen(m_psz); } 

int FastString::Find(const char *psz) const 
{ 
//O(1) lookup code deleted for> clarity1 
// код поиска 0(1) удален для ясности
}

Подскажите пожалуйста. Не могу понять строку FastString::FastString(const char *psz) : m_psz(new char [strlen(psz) + 1]) { strcpy(m_psz, psz); } , а точнее что это за двоеточие и то что за ним следует. Перерыл все. Так и не нашел.
И еще.
Каким образом в конце слова оказалось const?
int FastString::Length(void) const
 
E

European

Перерыл все. Так и не нашел.
Да не смешите! В любой нормальной книге все это описывается
что это за двоеточие и то что за ним следует.
За двоеточием следует список инициализации членов класса
Каким образом в конце слова оказалось const?
const в конце объявления метода класса говорит о том, что данный метод не изменяет члены класса, за исключением членов объявленных как mutable
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!