This repository has been archived on 2023-05-13. You can view files and clone it, but cannot push or open issues or pull requests.
mipt_cpp/seminar02_encapsulation/classroom_tasks/code/0book/09class.cpp
2022-09-14 19:05:27 +03:00

53 lines
1.6 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
Классы. Ключевое слово class.
На самом деле классы мы уже прошли. Структуры с методоми из предыдущих файлов это и есть классы.
Для объявления класса может использоваться ключевое слово class.
Разница между этими ключевым словами минимальна
- при использовании struct все поля и методы по умолчанию публичны
- при использовании class все поля и методы по умолчанию приватны
Но, так как мы указываем private и public для всех членов, то разницы нет вообще.
*/
#include <iostream>
#include <cmath>
#include <string.h>
#include <cstdlib>
using std::cout, std::endl;
class Book
{
private:
char title[100];
float price;
int pages;
public:
Book(const char aTitle[], float aPrice, int aPages)
{
if (aPages < 0 || aPrice < 0 || strlen(aTitle) >= 100)
{
cout << "Error while creating Book!" << endl;
std::exit(1);
}
strcpy(title, aTitle);
price = aPrice;
pages = aPages;
}
void print() const
{
cout << title << ", price = " << price << ", pages = " << pages << endl;
}
};
int main()
{
Book a = Book("War and Peace", 1700, 900);
a.print();
}