init commit

This commit is contained in:
2025-04-13 21:48:15 +03:00
commit 23255e9121
192 changed files with 12200 additions and 0 deletions
+91
View File
@@ -0,0 +1,91 @@
/*
Реализуйте класс S следующим образом:
Класс хранит целое число (типа int).
Число считывается со стандартного потока ввода в конструкторе.
Число выводится на стандартный поток вывода в деструкторе.
Следующая программа:
using namespace std;
void func(S v)
{
if (v) {
func(move(v));
}
}
int main()
{
func(S());
}
считывает последовательность целых чисел и выводит на стандартный поток вывода их сумму.
Если входная последовательность пустая, программа не выводит ничего.
Проверка на переполнение не требуется.
Глобальные переменные, static, mutable запрещены.
Сдаваемый на проверку класс должен подключать необходимые заголовочные файлы.
Examples
Input
1 2 3
Output
6
*/
#include <iostream>
class S {
int v;
int sum;
bool last;
bool first;
public:
S(S&& s) {
int val;
first = false;
if (std::cin >> val) {
v = val;
last = false;
sum = s.sum + v;
} else {
last = true;
sum = s.sum;
}
}
~S() {
if (last && !first) {
std::cout << sum << std::endl;
}
}
S() : v(0), sum(0), last(true), first(true) {
int val;
if (std::cin >> val) {
v = val;
last = false;
sum = v;
}
}
operator bool() const {
return !last;
}
};
// using namespace std;
// void func(S v) {
// if (v) {
// func(move(v));
// }
// }
// int main() {
// func(S());
// }