Собственные структуры данных

Задания раздела 2.6.1
2.39. Откомпилируйте следующую программу и посмотрите, что будет, если не поставить точку с запятой после определения класса. Запомните полученное сообщение, чтобы узнать его в будущем.
struct Foo { } 
int main (
return(0);
}
2.40. Напишите свою собственную версию класса Sales_data

p113_ex2-6-1

Структура данных - звучит неплохо. Это группирование данных по каким-то признакам, что-то объединяющим. У меня пока что нет представления как использовать классы, и я уверен, что без реального проекта этого понимания не добавится ни на сантиметр. Ну разве что на полшишки. А значит разбираюсь с синтаксисом.

struct Book_sales {
std::string booknmbr;
unsigned sales_qt=0;
double cash=0.0;
};
точка с запятой ставится потому, что после объявления класса еще можно определить переменные, которые своим типом будут иметь создаваемый класс.

struct Book_sales {
std::string booknmbr;
unsigned sales_qt=0;
double cash=0.0;
} accum, trans, *salesptr;

struct Book_sales {
std::string booknmbr;
unsigned sales_qt=0;
double cash=0.0;
}; // точка с запятой здесь обязательна
Book_sales accum, trans, *salesptr; - можно объявить переменные в следующей строчке, но точку с запятой после создания класса поставить обязан!

Все переменные в теле класса называются членами (переменные-члены). Каждый объект класса (Book_sales accum - такой например) имеет свой собственный набор переменных-членов.

Каждой переменной-члену можно предоставить внутриклассовый инициализатор (после знака присвоения или в фигурных скобках).

Для определения структуры данных еще можно использовать слово class, но о нем еще не скоро.

2.39. Откомпилируйте следующую программу и посмотрите, что будет, если не поставить точку с запятой после определения класса. Запомните полученное сообщение, чтобы узнать его в будущем.
struct Foo { } 
int main (
return(0);
}
err_ex2-39
запомнил.
2.40. Напишите свою собственную версию класса Sales_data

Берем struct и набиваем его разными полезными переменными:

srtuct herbalife {
std::string tasty_stuff;
double nutrition=0;
unsigned energetic_val=0;
long long free_cash=0;
};

Добавить комментарий