5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
{
public:
std::string m_name;
int m_id;
double m_wage;
// Метод вывода информации о работнике на
экран
void print()
{
std::cout << "Name: " << m_name <<
"\nId: " << m_id <<
"\nWage: $" << m_wage << '\n';
}
};
int main()
{
// Определяем двух работников
Employee john { "John", 5, 30.00 };
Employee max { "Max", 6, 32.75 };
// Выводим информацию о работниках на экран
john.print();
std::cout<
max.print();
return 0;
32 }
Результат выполнения программы выше:
Name:
John
Id:
5
Wage: $30
Name:
Max
Id:
6
Wage: $32.75
В
отличие от обычных функций, порядок, в котором определены методы
класса, не имеет значения!
Примечание о структурах в C++
В языке C структуры могут только хранить
данные и не могут иметь
связанных методов. В C++, после проектирования классов (используя
ключевое слово class), Бьёрн Страуструп размышлял о том, нужно ли,
чтобы структуры (которые были унаследованы из языка С) имели
связанные функции-члены. После некоторых размышлений он решил, что
нужно. Поэтому в программах выше мы
также можем использовать
ключевое слово struct, вместо class, и всё будет работать!
Многие разработчики (включая и меня) считают, что это было
неправильное решение, поскольку оно может привести к проблемам:
например,
справедливо предположить, что класс выполняет очистку
памяти после себя (например, класс, которому выделена память, освободит
её до того, как будет уничтожен), но предполагать то же самое при работе
со структурами — небезопасно.
Следовательно, рекомендуется
использовать ключевое слово struct для структур, используемых только для
хранения данных и ключевое слово
class для определения объектов,
которые требуют объединения как данных, так и функций.
Do'stlaringiz bilan baham: