lesson 1 #1

Open
alexander wants to merge 1 commits from lesson_1 into master
Owner
  1. Создать класс Power, который содержит два вещественных числа. Этот класс должен иметь две переменные-члена для хранения этих вещественных чисел. Еще создать два метода: один с именем set, который позволит присваивать значения переменным, второй — calculate, который будет выводить результат возведения первого числа в степень второго числа. Задать значения этих двух чисел по умолчанию.

  2. Написать класс с именем RGBA, который содержит 4 переменные-члена типа std::uint8_t: m_red, m_green, m_blue и m_alpha (#include cstdint для доступа к этому типу). Задать 0 в качестве значения по умолчанию для m_red, m_green, m_blue и 255 для m_alpha. Создать конструктор со списком инициализации членов, который позволит пользователю передавать значения для m_red, m_blue, m_green и m_alpha. Написать функцию print(), которая будет выводить значения переменных-членов.

  3. Написать класс, который реализует функциональность стека. Класс Stack должен иметь:

  • private-массив целых чисел длиной 10;
  • private целочисленное значение для отслеживания длины стека;
  • public-метод с именем reset(), который будет сбрасывать длину и все значения элементов на 0;
  • public-метод с именем push(), который будет добавлять значение в стек. push() должен возвращать значение false, если массив уже заполнен, и true в противном случае;
  • public-метод с именем pop() для вытягивания и возврата значения из стека. Если в стеке нет значений, то должно выводиться предупреждение;
  • public-метод с именем print(), который будет выводить все значения стека.

Код main():

int main()
{
    Stack stack;
    stack.reset();
    stack.print();
    
    stack.push(3);
    stack.push(7);
    stack.push(5);
    stack.print();
    
    stack.pop();
    stack.print();
    
    stack.pop();
    stack.pop();
    stack.print();
    
    return 0;
}
1. Создать класс Power, который содержит два вещественных числа. Этот класс должен иметь две переменные-члена для хранения этих вещественных чисел. Еще создать два метода: один с именем set, который позволит присваивать значения переменным, второй — calculate, который будет выводить результат возведения первого числа в степень второго числа. Задать значения этих двух чисел по умолчанию. 2. Написать класс с именем RGBA, который содержит 4 переменные-члена типа std::uint8_t: m_red, m_green, m_blue и m_alpha (#include cstdint для доступа к этому типу). Задать 0 в качестве значения по умолчанию для m_red, m_green, m_blue и 255 для m_alpha. Создать конструктор со списком инициализации членов, который позволит пользователю передавать значения для m_red, m_blue, m_green и m_alpha. Написать функцию print(), которая будет выводить значения переменных-членов. 3. Написать класс, который реализует функциональность стека. Класс Stack должен иметь: * private-массив целых чисел длиной 10; * private целочисленное значение для отслеживания длины стека; * public-метод с именем reset(), который будет сбрасывать длину и все значения элементов на 0; * public-метод с именем push(), который будет добавлять значение в стек. push() должен возвращать значение false, если массив уже заполнен, и true в противном случае; * public-метод с именем pop() для вытягивания и возврата значения из стека. Если в стеке нет значений, то должно выводиться предупреждение; * public-метод с именем print(), который будет выводить все значения стека. Код main(): ``` int main() { Stack stack; stack.reset(); stack.print(); stack.push(3); stack.push(7); stack.push(5); stack.print(); stack.pop(); stack.print(); stack.pop(); stack.pop(); stack.print(); return 0; } ```
alexander added 1 commit 2021-06-18 22:20:29 +00:00
jediserg reviewed 2021-06-19 11:00:30 +00:00
@ -0,0 +14,4 @@
void print()
{
std::cout << "r=" << static_cast<int>(m_red) <<
First-time contributor

тут можно без каста

тут можно без каста
Author
Owner

Насколько я понимаю, использовать Си-приведение в C++ не очень правильно 😉 :
(int)m_red
Либо попробовать
1 * m_red
Но это толку не даст.

Насколько я понимаю, использовать Си-приведение в C++ не очень правильно 😉 : `(int)m_red` Либо попробовать `1 * m_red` Но это толку не даст.
First-time contributor

Да с привидение не очень, если честно я когда писал, не подумал что поток для uint8_t тоже переопределен и как для char работает, я подумал саециально в задании и написали использовать uint8_t для этого))

А так да или каст, еще что можно это << +m_red <<
ну или какая то другя операция чтобы в int скастилось автоматом

Да с привидение не очень, если честно я когда писал, не подумал что поток для uint8_t тоже переопределен и как для char работает, я подумал саециально в задании и написали использовать uint8_t для этого)) А так да или каст, еще что можно это << +m_red << ну или какая то другя операция чтобы в int скастилось автоматом
This pull request can be merged automatically.
You are not authorized to merge this pull request.
You can also view command line instructions.

Step 1:

From your project repository, check out a new branch and test the changes.
git checkout -b lesson_1 master
git pull origin lesson_1

Step 2:

Merge the changes and update on Gitea.
git checkout master
git merge --no-ff lesson_1
git push origin master
Sign in to join this conversation.
No reviewers
No Label
No Milestone
No project
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: alexander/geekbrains_oop_cpp#1
No description provided.