Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
kirill1904
0 / 0 / 0
Регистрация: 29.09.2014
Сообщений: 25
#1

Передача объекта в функцию - C++

21.06.2015, 21:31. Просмотров 729. Ответов 20
Метки нет (Все метки)

подскажите что тут не так у меня?!
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
/*
 * 5. Поле first — целое положительное число, часы; 
 * поле second — целое положительное число, минуты. 
 * Реализовать внешнюю функцию сложения двух объектов данного типа. 
 * Результат возвращать в качестве объекта. В реализации функции учесть, 
 * что значение поля минуты может быть только в диапазоне от 0 до 59. 
 */
#include <iostream>
using namespace std;
int init_,error_=0;
 
class vr
{
    private:
    int first;
    int second;
    public:
    vr() {first=0;second=0;}
    int init(int f,int s)
    {
        if ((f>=0) && (f<=23) && (s>=0) && (s<=59)) {first=f; second=s; return 0;}
        else error();
    }
    void read()
    {
        int f,s;
        cin>>f>>s;
        init_=init(f,s);
    }
    void error()
    {
        cout<<"error!";
        error_=1;
    }
    void display()
    {
        if (init_==0)
        cout<<first<<" "<<second;
    }
    
};
vr sum(vr x,vr y)
{
    vr temp;
    temp=x+y;
    temp.display();
}
 
int main()
{
    vr o1,o2;
    cout<<"obj1\n";
    o1.read();
    o1.display();
    if (error_==0)
    {cout<<"\nobj2\n";
    o2.read();
    o2.display();
    sum(o1,o2);
}
    
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.06.2015, 21:31
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Передача объекта в функцию (C++):

Передача объекта в функцию или функцию друга - C++
Здравствуйте, уважаемые программисты :) К примеру есть такой код. #include &lt;iostream&gt; using namespace std; class My_Class1 { ...

Передача объекта в функцию - C++
Нужно передать в функцию void Openz(Array &amp;a) { int**buff = a.getarr(); for (int i(0); i &lt; 10; i++) { for (int j(0);...

Передача объекта класса в функцию С++ - C++
Всем привет! Возник вопрос по классам. Допустим мне нужно изменить объект класса через функцию вызываемую в main. Я пробовал через...

Передача объекта в вызывающую функцию - C++
Всем привет! Что-то меня переклинило, помогите. Задача в том, что в функции, вызванной из main(), нужно построить довольно тяжелый объект,...

Передача объекта по указателю в функцию - C++
Здравствуйте. При передаче объекта в метод другого объекта по указателю, метод получает непонятно что. class SomeObj { ...

Классы: передача объекта в функцию - C++
class Distance // длина в английской системе { private: int feet; float inches; public: ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
kirill1904
0 / 0 / 0
Регистрация: 29.09.2014
Сообщений: 25
21.06.2015, 22:35  [ТС] #16
Цитата Сообщение от hoggy Посмотреть сообщение
как то так:
http://rextester.com/MNXF51354
делаю как у тебя в коде но что то ему не нравиться
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#include <iostream>
using namespace std;
int init_,error_=0;
 
class vr
{
    private:
    int first;
    int second;
    public:
    vr(const int h = 0, const int m = 0):first(h),second(m) {normalize();}
    int init(int f,int s)
    {
        if ((f>=0) && (s>=0) && (s<=59)) {first=f; second=s; return 0;}
        else error();
    }
    void read()
    {
        int f,s;
        cin>>f>>s;
        init_=init(f,s);
    }
    void error()
    {
        cout<<"error!";
        error_=1;
    }
    void normalize()
    {
        const auto h = second/60;
        first += h;
        second -= h*60;
    }
    void display()
    {
        if (init_==0)
        cout<<""<<first<<" "<<second;
    }
    friend vr operator+(const vr& lhs, const vr& rhs)
    {
        vr result(lhs.first + rhs.first, lhs.second + rhs.second);
        result.normalize();
        return result;
    }
};
vr sum(vr x,vr y)
{
    vr temp;
    temp=x+y;
    cout<<"\n";
    temp.display();
}
int main()
{
    vr o1,o2;
    o1.read();
    o1.display();
    if (error_==0)
    { 
    cout<<"\n";
    o2.read();
    o2.display();
    sum(o1,o2);
    }
}
Добавлено через 3 минуты
Цитата Сообщение от hoggy Посмотреть сообщение
она должна вернуть наружу результат сложения.
но она так же ничего не возвращает.
то бишь, здесь у вас точно такая же жЁпа.
вместо суммы вы будете получать случайный мусор.
сложили два временных объекта, получили мусор.
нормально чо.
это я исправил) спасибо
0
castaway
Эксперт С++
4884 / 3020 / 370
Регистрация: 10.11.2010
Сообщений: 11,078
Записей в блоге: 10
Завершенные тесты: 1
21.06.2015, 22:36 #17
Цитата Сообщение от kirill1904 Посмотреть сообщение
подскажи еще как сделать чтобы при значении поля second=60 first увеличивался на один и оставшееся записвалось в second
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
 
int main() {
 
    // например ввел 2 часа и 40 минут в первом объекте, и 1 час 34 минуты в итоге должно получится 4 часа 14 минут 
    int h0 = 2;
    int m0 = 40;
 
    int h1 = 1;
    int m1 = 34;
 
    int h = h0 + h1;
    int mm = m0 + m1;
    h += mm / 60;
    int m = mm % 60;
 
    std::cout << "h = " << h << ", m = " << m << std::endl;
 
    return 0;
}
0
kirill1904
0 / 0 / 0
Регистрация: 29.09.2014
Сообщений: 25
21.06.2015, 22:39  [ТС] #18
Цитата Сообщение от castaway Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
 
int main() {
 
    // например ввел 2 часа и 40 минут в первом объекте, и 1 час 34 минуты в итоге должно получится 4 часа 14 минут 
    int h0 = 2;
    int m0 = 40;
 
    int h1 = 1;
    int m1 = 34;
 
    int h = h0 + h1;
    int mm = m0 + m1;
    h += mm / 60;
    int m = mm % 60;
 
    std::cout << "h = " << h << ", m = " << m << std::endl;
 
    return 0;
}
да только надо это сделать в классе
0
castaway
Эксперт С++
4884 / 3020 / 370
Регистрация: 10.11.2010
Сообщений: 11,078
Записей в блоге: 10
Завершенные тесты: 1
21.06.2015, 22:58 #19
Я тебе показал алгоритм с примером. Делай.
0
kirill1904
0 / 0 / 0
Регистрация: 29.09.2014
Сообщений: 25
21.06.2015, 23:12  [ТС] #20
Цитата Сообщение от castaway Посмотреть сообщение
Я тебе показал алгоритм с примером. Делай.
делаю, вот что получилось
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    vr normal(const vr & rhs)
    {
        vr norm;
        norm.first += rhs.second/60;
        norm.second = rhs.second%60;
        return norm;
    }
};
vr sum(vr x,vr y)
{
    vr temp;
    temp=x+y;
    cout<<"\n";
    temp.normal();
    return temp;
}
ругается на вызов функции normal

Добавлено через 5 минут
PS normal() находится в классе
0
castaway
Эксперт С++
4884 / 3020 / 370
Регистрация: 10.11.2010
Сообщений: 11,078
Записей в блоге: 10
Завершенные тесты: 1
21.06.2015, 23:24 #21
Цитата Сообщение от kirill1904 Посмотреть сообщение
PS normal() находится в классе
Совершенно верно, и эта функция (метод) должна принимать параметр.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.06.2015, 23:24
Привет! Вот еще темы с ответами:

Передача функционального объекта в функцию - C++
Здорова! Никак не могу передать функциональный объект в функцию. От примерчик, функция передается нормально, а объект нет. #include...

Присваивание объектов одного типа между собой и передача объекта в функцию по значению - C++
При первом знакомстве с С++ усиленно не могу понять вот такие моменты : 1. Имеем вот такой код : class use_string { char...

Как правильно вызывать функцию объекта из другой функции того же объекта? - C++
Доброго дня и ночи, уважаемые программисты! Существует некоторая проблема, на которую я наткнулся, решая задачу по программированию из...

Передача объекта методу другого объекта другого класса - C++
Всем привет. Есть у меня класс test1, который имеет конструкторы только с параметрами. Другой класс test2 имеет конструктор, который...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
21.06.2015, 23:24
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru