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

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

Восстановить пароль Регистрация
 
renataakhm
20 / 5 / 1
Регистрация: 10.09.2012
Сообщений: 115
20.03.2014, 04:26     Использование метода из одного класса в другом #1
Здравствуйте! Проходим классы, все никак не могу понять, как использовать метод из одного класса в другом.. Доходит до меня только на примерах. Искала, искала, но все никак не дойдет. Помогите, пожалуйста!

Имеется класс (опущены методы 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;
}
Как вы заметили переменные и названия классов не на русском, и не на английском.. Учусь за рубежом, недопонимаю.. Помогите, пожалуйста!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.03.2014, 04:26     Использование метода из одного класса в другом
Посмотрите здесь:

Получение данных от одного класса в другом классе. C++
C++ Передача метода класса в качестве параметра для метода другого класса
Использование объекта одного класса при создании нового класса C++
C++ Как объявить массив объектов одного класса в другом классе, а затем поместить в него объекты?
C++ обращение к переменным одного метода из другого внутри класса
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
20.03.2014, 10:44     Использование метода из одного класса в другом #2
Цитата Сообщение от renataakhm Посмотреть сообщение
Учусь за рубежом, недопонимаю
Так вам переводчик нужен, а не программист
Даже когда обучают на русском, давать переменным имена на транслите это полнейшая жесть. Поэтому независимо от языка обучения рекомендую использовать английские названия сущностей.
DPS
 Аватар для DPS
32 / 32 / 3
Регистрация: 12.11.2011
Сообщений: 107
Завершенные тесты: 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;
}
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;
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
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 у метода, то не скомпилируется.
Catstail
Модератор
 Аватар для Catstail
21503 / 10256 / 1670
Регистрация: 12.02.2012
Сообщений: 17,143
20.03.2014, 12:34     Использование метода из одного класса в другом #6
Цитата Сообщение от renataakhm Посмотреть сообщение
как использовать метод из одного класса в другом
- так нельзя. Нет ли у вас путаницы в понятиях "класс" и "объект"? Это ведь не одно и то же...
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
20.03.2014, 12:44     Использование метода из одного класса в другом #7
Цитата Сообщение от Catstail Посмотреть сообщение
- так нельзя
как это нельзя? Банальнейший вызов функции базового класса из функции производного.
Catstail
Модератор
 Аватар для Catstail
21503 / 10256 / 1670
Регистрация: 12.02.2012
Сообщений: 17,143
20.03.2014, 14:18     Использование метода из одного класса в другом #8
Если бы TC пробовала именно это, то и вопроса бы не возникло. Верно?
renataakhm
20 / 5 / 1
Регистрация: 10.09.2012
Сообщений: 115
20.03.2014, 22:10  [ТС]     Использование метода из одного класса в другом #9
Catstail, все все, разобралась) нужно объявить объект в другом классе и можно пользоваться его методами!)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.03.2014, 09:18     Использование метода из одного класса в другом
Еще ссылки по теме:

Утилизация класса (размещение класса в другом файле) C++
C++ Как вызвать метод одного класса в другом?
C++ Использование очереди (queue) одного класса в другом

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

Или воспользуйтесь поиском по форуму:
Catstail
Модератор
 Аватар для Catstail
21503 / 10256 / 1670
Регистрация: 12.02.2012
Сообщений: 17,143
21.03.2014, 09:18     Использование метода из одного класса в другом #10
renataakhm, умница! Именно это я и имел в виду.
Yandex
Объявления
21.03.2014, 09:18     Использование метода из одного класса в другом
Ответ Создать тему
Опции темы

Текущее время: 06:47. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru