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

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

Войти
Регистрация
Восстановить пароль
 
renataakhm
20 / 5 / 1
Регистрация: 10.09.2012
Сообщений: 115
#1

Использование метода из одного класса в другом - C++

20.03.2014, 04:26. Просмотров 969. Ответов 9
Метки нет (Все метки)

Здравствуйте! Проходим классы, все никак не могу понять, как использовать метод из одного класса в другом.. Доходит до меня только на примерах. Искала, искала, но все никак не дойдет. Помогите, пожалуйста!

Имеется класс (опущены методы get,set..). Вот этот метод мне и нужно использовать - izracunajDavekNaNepremicnino();

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//Nepremicnina.h
class Nepremicnina {
 
private:
    double DavekZRez();
    double DavekBrezRez();
    static int quan;
public:
    //konstr in destr
    Nepremicnina();  // privzeti konstruktor
    Nepremicnina(int _tip, int _vrNep, bool _rezidenca, string _parcStev, string _katOb); // pretvorbeni konstruktor
    Nepremicnina(const Nepremicnina& obj);   // kopirni konstruktor
    ~Nepremicnina(); // destruktor
    //
 
    int tip, vrNep;
    bool rezidenca;
    string parcStev, katOb; 
 
    double izracunajDavekNaNepremicnino();  
};
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//Nepremicnina.cpp
 
double Nepremicnina:: izracunajDavekNaNepremicnino(){
    double davek;
 
    if (rezidenca==true)
    {
        davek=vrNep*DavekZRez();
    }
    else
    {
        davek=vrNep*DavekBrezRez();
    }
 
    return davek;
}
А здесь класс, в котором нужно использовать:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//Lastnik.h
 
class Lastnik {
 
private:
    string ImePriimek;
    Nepremicnina neprem;
    double delez;
public:
 
    //konstr in destr
 
    Lastnik();
    Lastnik(string _ImePriimek, Nepremicnina _neprem, double _delez);
    Lastnik(const Lastnik& lastn);
    ~Lastnik();
 
    //
 
    double izracunajDavekNaLastnika();
};
И вот здесь нужно использовать его:

C++
1
2
3
4
5
6
7
8
9
//Lastnik.cpp
 
double Lastnik:: izracunajDavekNaLastnika(){
    double davek;
 
    davek=delez*(Nepremicnina::izracunajDavekNaNepremicnino());
 
    return davek;
}
Как вы заметили переменные и названия классов не на русском, и не на английском.. Учусь за рубежом, недопонимаю.. Помогите, пожалуйста!
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.03.2014, 04:26
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Использование метода из одного класса в другом (C++):

Использование данных одного класса в другом классе - C++
Подскажите как сделать так что бы значения d1,d2 из первого класса можно было использовать во втором классе? #include "stdafx.h" ...

Использование очереди (queue) одного класса в другом - C++
Использование очереди (queue) одного класса в другом проблема в следующем есть класс Hospital, в котором созданы 2 очереди class...

Вызов метода класса, расположенного в другом файле - C++
У нас есть 2 файла ->Sourse.cpp and Sourse.h /*Sourse.cpp*/ #include "C:\Users\USER\Desktop\define.h" int main() { ...

Использование объекта одного класса при создании нового класса - C++
Добрый вечер. У меня такая проблема. Есть готовый класс L2 - список, на его основе нужно создать дек. Я поступил так: в приватной части...

Использование объектов класса в другом классе - C++
Пусть имеются 2 класса Snake и Food, а также 2 их объекта snake и food соответственно. food должен в одном из его методов работать со...

Можно ли использовать объекты одного класса в другом? - C++
И если можно то как? Например если определить это так(предположим что есть два класса - employee и date) class employee { ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Tulosba
:)
Эксперт С++
4396 / 3239 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
20.03.2014, 10:44 #2
Цитата Сообщение от renataakhm Посмотреть сообщение
Учусь за рубежом, недопонимаю
Так вам переводчик нужен, а не программист
Даже когда обучают на русском, давать переменным имена на транслите это полнейшая жесть. Поэтому независимо от языка обучения рекомендую использовать английские названия сущностей.
1
DPS
32 / 32 / 3
Регистрация: 12.11.2011
Сообщений: 109
Завершенные тесты: 1
20.03.2014, 11:04 #3
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Вот так что ли?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//Lastnik.h
 
class Lastnik {
 
private:
    string ImePriimek;
    Nepremicnina neprem;
    double delez;
public:
 
    //konstr in destr
 
    Lastnik();
    Lastnik(string _ImePriimek, Nepremicnina _neprem, double _delez);
    Lastnik(const Lastnik& lastn);
    ~Lastnik();
 
    //
 
    double izracunajDavekNaLastnika(Nepremicnina &rhs);   //передадим в функцию объект типа Nepremicnina
};

C++
1
2
3
4
5
6
7
8
9
//Lastnik.cpp
 
double Lastnik:: izracunajDavekNaLastnika(Nepremicnina &rhs){
    double davek;
 
    davek=delez*(rhs.izracunajDavekNaNepremicnino());    //здесь вызовем метод объекта Nepremicnina
 
    return davek;
}
1
renataakhm
20 / 5 / 1
Регистрация: 10.09.2012
Сообщений: 115
20.03.2014, 12:18  [ТС] #4
Tulosba, да я и когда на родине училась только основам, по большей части находила все сама.. как правило преподы только принимали работы! Сейчас уже язык учу, со слайдами процентов 80 понимаю.. Просто вот не задалось с классами, объектами..

А насчет названий, у них латиница тут, так что они не замарачиваются)) а я, так сказать, вливаюсь

Добавлено через 1 минуту
DPS, все оказывается логично и просто спасибо огромное!

Добавлено через 2 минуты
А можно еще тогда не уходя от классов и объектов, чтоб тему новую не создавать?

В кратце про this? Тоже нужно использовать.. не знаю, куда прилепить..
И зачем методы делать константными? вот так типа
C++
1
void print() const;
0
Tulosba
:)
Эксперт С++
4396 / 3239 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
20.03.2014, 12:32 #5
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от renataakhm Посмотреть сообщение
И зачем методы делать константными?
Если функция-член не должна модифицировать видимое состояние объекта, следует сделать ее константной.
Для константных объектов можно вызывать только константные методы:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
 
struct C
{
    void f() const { std::cout << "f()\n"; }
};
 
int main() {
 
    const C c;
    
    c.f();
 
    return 0;
}
Если убрать const у метода, то не скомпилируется.
1
Catstail
Модератор
22615 / 10976 / 1779
Регистрация: 12.02.2012
Сообщений: 18,117
20.03.2014, 12:34 #6
Цитата Сообщение от renataakhm Посмотреть сообщение
как использовать метод из одного класса в другом
- так нельзя. Нет ли у вас путаницы в понятиях "класс" и "объект"? Это ведь не одно и то же...
1
Tulosba
:)
Эксперт С++
4396 / 3239 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
20.03.2014, 12:44 #7
Цитата Сообщение от Catstail Посмотреть сообщение
- так нельзя
как это нельзя? Банальнейший вызов функции базового класса из функции производного.
1
Catstail
Модератор
22615 / 10976 / 1779
Регистрация: 12.02.2012
Сообщений: 18,117
20.03.2014, 14:18 #8
Если бы TC пробовала именно это, то и вопроса бы не возникло. Верно?
1
renataakhm
20 / 5 / 1
Регистрация: 10.09.2012
Сообщений: 115
20.03.2014, 22:10  [ТС] #9
Catstail, все все, разобралась) нужно объявить объект в другом классе и можно пользоваться его методами!)
1
Catstail
Модератор
22615 / 10976 / 1779
Регистрация: 12.02.2012
Сообщений: 18,117
21.03.2014, 09:18 #10
renataakhm, умница! Именно это я и имел в виду.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.03.2014, 09:18
Привет! Вот еще темы с ответами:

Значения из одного класса в другом(через указатель) - C++
Здравствуйте, это снова я Ошибка в 63 строчке, как туда указать 2 параметра? #include &lt;iostream&gt; using namespace std; class...

Как вызвать метод одного класса в другом? - C++
У меня есть два отдельных класса. Вопрос, как вызвать метод одного класса в другом? что-то слышал о экземпляре класса, указатели, но так...

Получение данных от одного класса в другом классе. - C++
Здравствуйте уважаемые программисты. ситуация следующая: Есть класс А. У этого класса есть public функция getVar(), которая возвращает...

Классы (Использование функций класса в другом классе) - C++
Доброго времени суток. У меня есть 3 класса: Forest, Plants и Grass. Хочу сделать, чтобы через указатель на объект класса Forest я мог...


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

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

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