0 / 0 / 0
Регистрация: 15.06.2023
Сообщений: 1
1

Исправить ошибку с auto&

15.06.2023, 18:51. Показов 375. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Создайте класс Rectangle с полями wight, height с доступом private. Создайте
конструктор с аргументами, который инициирует поля переданными значениями
аргументов. Создайте дружественный класс Area, для которого создайте метод
getValue, который возвращает значение площади для объекта класса Rectangle.
Напишите программу, которая запрашивает ввод с клавиатуры ширины и длины
прямоугольника в отдельных строках, создает объект класса Вебапае и
инициализирует его введенными значениями. Создайте объект класса Area,
выведите на экран результат работы метода getValue.
C++
1
2
3
4
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include <iostream> 
using namespace std;
class Rectangle
{
private:
    int weight;
    int height;
 
public:
    int square;
    Rectangle(auto& w, auto& h) 
    {
        this->weight = w;
        this->height = h;
    }
    friend class Area;
};
 
class Area
{
public:
    char getValue(Rectangle& rec)
    {
        rec.square = rec.weight * rec.height;
    }
        void ShowSquare(Rectangle& rec)
    {
        cout << "Площадь прямоугольника =  " << rec.square << "\n";
        return;
    }
};
 
int main(void)
{
    setlocale(0, "");
    setlocale(0, "");
    auto w = 0, h = 0;
    cout << "Введите ширину: ";
    cin >> w;
    cout << "Введите высоту: ";
    cin >> h;
    Rectangle rec(w, h);
    Area ar;
    ar.getValue(rec);
    ar.ShowSquare(rec);
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.06.2023, 18:51
Ответы с готовыми решениями:

Как исправить ошибку if(auto const& (val: stime))
Строка 46 if(auto const&amp; (val: stime)) #include &lt;iostream&gt; #include &lt;stdexcept&gt; #include...

Исправить ошибку "call of overloaded 'abs(double&)' is ambiguous"
помогите пожалуйста, выдает ошибку. не знаю где #include &lt;iostream&gt; #include &lt;stdio.h&gt;...

Исправить ошибку "non-standard syntax; use '&' to create a pointer to member"
Доброго времени суток,такая проблема,код вроде написан нормально,но выдает ошибку : &quot;non-standard...

Что при присваивается i в for(const auto& i : iVec1) ?
Есть объявление вектора vector&lt;int&gt; iVec1 = {0,1,2,3,4,5}; Почему следующие два варианта...

Strcpy_s выдает ошибку L Buffer is too small & & 0
strcpy_s выдает ошибку L Buffer is too small &amp; &amp; 0 22 строка #include &lt;iostream&gt; #include...

6
Эксперт функциональных языков программированияЭксперт С++
4275 / 2128 / 965
Регистрация: 01.06.2021
Сообщений: 7,332
15.06.2023, 21:28 2
Цитата Сообщение от gamespider484 Посмотреть сообщение
char getValue(Rectangle& rec)
твоя проблема здесь, вместо char пиши void

gamespider484, на остальное не смотрел, но исправь то, что сказал, и вроде код должен компилироваться без ошибок начиная с версии C++20
0
фрилансер
5859 / 5398 / 1104
Регистрация: 11.10.2019
Сообщений: 14,408
15.06.2023, 21:36 3
Цитата Сообщение от gamespider484 Посмотреть сообщение
Rectangle(auto& w, auto& h)
->
C++
1
Rectangle(int w, int h)
0
Вездепух
Эксперт CЭксперт С++
12803 / 6678 / 1797
Регистрация: 18.10.2014
Сообщений: 16,903
15.06.2023, 22:00 4
Цитата Сообщение от gamespider484 Посмотреть сообщение
Исправить ошибку с auto&
Какую "ошибку с auto&"? В коде нет никаких "ошибок с auto&".
0
Эксперт функциональных языков программированияЭксперт С++
4275 / 2128 / 965
Регистрация: 01.06.2021
Сообщений: 7,332
15.06.2023, 22:04 5
Цитата Сообщение от TheCalligrapher Посмотреть сообщение
В коде нет никаких "ошибок с auto&".
я тоже не нашел никаких ошибок, но использование auto, как я писал выше, повышает версию и делает код опасным.
0
619 / 399 / 187
Регистрация: 28.11.2019
Сообщений: 867
15.06.2023, 22:18 6
Цитата Сообщение от gamespider484 Посмотреть сообщение
Исправить ошибку с auto&
Вам нужна версия языка с++20 или выше для работы вашего кода. А вообще не стоит везде использовать auto таким образом, он не для этого создавался в общем-то.

C++
1
2
3
4
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
32
33
34
35
36
37
38
39
#include <iostream>
using namespace std;
 
class Rectangle
{
private:
    int weight;
    int height;
 
public:
    Rectangle(int &w, int &h)
    {
        this->weight = w;
        this->height = h;
    }
    friend class Area;
};
 
class Area
{
public:
    static int getValue(Rectangle &rec)
    {
        return rec.weight * rec.height;
    }
};
 
int main(void)
{
    setlocale(0, "");
    setlocale(0, "");
    int w = 0, h = 0;
    cout << "Введите ширину: ";
    cin >> w;
    cout << "Введите высоту: ";
    cin >> h;
    Rectangle rec(w, h);
    cout << "Площадь прямоугольника =  " << Area::getValue(rec) << "\n";
}
0
Эксперт функциональных языков программированияЭксперт С++
4275 / 2128 / 965
Регистрация: 01.06.2021
Сообщений: 7,332
15.06.2023, 22:56 7
Цитата Сообщение от randok Посмотреть сообщение
C++
1
Rectangle(int &w, int &h)
тут если и передавать по ссылкам, то лучше передать по константным ссылкам раз на то уже пошло, но они здесь вообще не нужны. Выше Алексей1153 отметил, что лучше писать
Цитата Сообщение от Алексей1153 Посмотреть сообщение
C++
1
Rectangle(int w, int h)
При передаче фундаментальных типов данных, как вот int, лучше использовать передачу по значению, а не передачу по константной ссылке, ибо фундаментальные типы данных без проблем засовываются в регистры процессора, не используя при этом стек. Т.е. передача по значению фундаментальных типов данных так же быстра, как и по ссылке. В то же время, передача по ссылке более затратна своей передачей указателя и его последующим разыменованием в теле вызываемой функции для получения значения. Да и передача по значению более компактна и не усложняет восприятие кода.
0
15.06.2023, 22:56
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.06.2023, 22:56
Помогаю со студенческими работами здесь

Подскажите как исправить ошибку. прога ломается на 79 строке. а ошибку не выдает
#include &lt;iostream&gt; #include &lt;cstdlib&gt; #include &lt;ctime&gt; using namespace std; int chisla(int...

For(auto const& val : stime) .cpp(47) : error C2143: синтаксическая ошибка: отсутствие "," перед ":"
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;stdexcept&gt; #include &lt;locale&gt; #include...

Ошибка: multiple definition of `void std::swap<A>(A&amp;, A&amp;)
Хочу специализировать swap для своего класса. Получаю ошибку. Вот код:#ifndef A_H #define A_H ...

Auto&& and decltype(auto)
Приведите пример различия поведения заполнителей auto&amp;&amp; и decltype(auto).

Исправить ошибку 'ios::basic_ios(const ios &)' is not accessible
помогите исправить ошибки пожалуйста код...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

Новые блоги и статьи
Как проводить научные вычисления на Python
InfoMaster 15.01.2025
Python стал одним из наиболее востребованных языков программирования в области научных вычислений благодаря своей простоте, гибкости и обширной экосистеме специализированных библиотек. Научные. . .
Создание игры типа Minecraft на PyGame/Python: пошаговое руководство
InfoMaster 15.01.2025
В данном руководстве мы рассмотрим процесс создания игры в стиле Minecraft с использованием библиотеки PyGame на языке программирования Python. Этот проект идеально подходит как для начинающих. . .
Как создать свою первую игру в стиле Doom на Unreal Engine
InfoMaster 15.01.2025
Разработка шутера от первого лица в стиле классического Doom представляет собой увлекательное путешествие в мир игрового программирования, где сочетаются творческий подход и технические навыки. . . .
Параллельное программировани­е: основные технологии и принципы
InfoMaster 15.01.2025
Введение в параллельное программирование Параллельное программирование представляет собой фундаментальный подход к разработке программного обеспечения, который позволяет одновременно выполнять. . .
Как написать микросервис на C# с Kafka, MediatR, Redis и GitLab CI/CD
InfoMaster 15.01.2025
В современной разработке программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот подход позволяет разделить сложную систему. . .
Что такое CQRS и как это реализовать на C# с MediatR
InfoMaster 15.01.2025
Концепция CQRS и её роль в современной разработке В современном мире разработки программного обеспечения архитектурные паттерны играют ключевую роль в создании масштабируемых и поддерживаемых. . .
Как настроить CI/CD с Azure DevOps
InfoMaster 15.01.2025
CI/ CD, или непрерывная интеграция и непрерывное развертывание, представляет собой современный подход к разработке программного обеспечения, который позволяет автоматизировать и оптимизировать процесс. . .
Как настроить CI/CD с помощью Jenkins
InfoMaster 15.01.2025
Введение в CI/ CD и Jenkins В современной разработке программного обеспечения непрерывная интеграция (CI) и непрерывная доставка (CD) стали неотъемлемыми элементами процесса создания качественных. . .
Как написать микросервис на Go/Golang с Kafka, REST и GitHub CI/CD
InfoMaster 14.01.2025
Определение микросервиса, преимущества использования Go/ Golang Микросервис – это архитектурный подход к разработке программного обеспечения, при котором приложение состоит из небольших, независимо. . .
Как написать микросервис с нуля на C# с RabbitMQ, CQRS, Swagger и CI/CD
InfoMaster 14.01.2025
В современном мире разработки программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот архитектурный подход предполагает. . .
Как создать интернет-магазин на PHP и JavaScript
InfoMaster 14.01.2025
В современном мире электронная коммерция стала неотъемлемой частью бизнеса. Создание собственного интернет-магазина открывает широкие возможности для предпринимателей, позволяя достичь большей. . .
Как написать Тетрис на Ассемблере
InfoMaster 14.01.2025
Тетрис – одна из самых узнаваемых и популярных компьютерных игр, созданная в 1984 году советским программистом Алексеем Пажитновым. За прошедшие десятилетия она завоевала симпатии миллионы людей по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru