указатель или переменная?

В последнее время я изучаю MFC, следующие коды меня сильно озадачили:

  class CRect : public tagRECT
{
public:

// Constructors

// uninitialized rectangle
CRect();
// from left, top, right, and bottom
CRect(int l, int t, int r, int b);
// copy constructor
CRect(const RECT& srcRect);
// from a pointer to another rect
CRect(LPCRECT lpSrcRect);
// from a point and size
CRect(POINT point, SIZE size);
// from two points
CRect(POINT topLeft, POINT bottomR
...

Базовый класс CRect — это структура! Я никогда не узнал этого раньше. И если я позвоню

CWnd :: GetClientRect (LPRECT lpRect);

я могу использовать прямоугольник или же &прямоугольник (CRect rect) в качестве параметра. Это удивительно!

Я хочу знать некоторые правила о классе с помощью struct base. Спасибо!

-1

Решение

В C ++ классы и структура одинаковы, за исключением их поведения по умолчанию в отношении наследования и уровней доступа членов.

Класс C ++
Наследование по умолчанию = частное
Уровень доступа по умолчанию для переменных и функций-членов = private

Структура C ++
Наследование по умолчанию = public
Уровень доступа по умолчанию для переменных и функций-членов = public

Короче говоря, да, класс может наследовать от структуры в C ++.

5

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

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

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