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

C++

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 31, средняя оценка - 4.97
OVERPOWER8
19 / 19 / 1
Регистрация: 29.11.2009
Сообщений: 224
#1

Как обратиться к методу класса из внешней функции? - C++

20.12.2009, 15:29. Просмотров 4178. Ответов 21
Метки нет (Все метки)

Имеется простой класс Employee с методами GetAge() - возвращает возраст, и SetAge(int age).
Как сделать так, чтобы работали функции DoShowInfo() и DoChangeAge(int age)

Например, вот класс:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Employee
{
    private:
        int *age;
    public:
        Employee();     ~Employee();
        
        void SetAge(int NewAge) { *age = NewAge; }
        void GetAge() const     { return *age; }
}
 
Employee::Employee()        {   age = new int(27);  }
 
Employee::~Employee()       {   delete age;     }
функции:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
void DoShowInfo(Employee name)
{
    name->GetAge();
}
 
void DoChangeAge(Employee name, int NewAge)
{
    name->SetAge(NewAge)
}
 
int main()
{
    Employee* Alexander = new Employee();
    ...
    DoChangeAge(Alexander, NewAge);
    DoShowInfo(Alexander);
    ...
    delete Elexander; Alexander = 0;
    ...
}
Подскажите, как сделать так, чтобы эти функции заработали?

DoChangeAge(Alexander, NewAge);
DoShowInfo(Alexander);
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.12.2009, 15:29     Как обратиться к методу класса из внешней функции?
Посмотрите здесь:
C++ Не могу обратиться к методу класса в функции
C++ Класс: как обратиться к методу производного класса через итератор на базовый класс?
C++ Как из другой функции обратиться к членам класса окна?
C++ Как обратиться к функции класса, который находится в листе?
Как обратиться к методу объекта? C++
метод класса во внешней функции C++
C++ Передача метода класса в качестве аргумента внешней функции
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
OVERPOWER8
19 / 19 / 1
Регистрация: 29.11.2009
Сообщений: 224
20.12.2009, 17:27  [ТС]     Как обратиться к методу класса из внешней функции? #16
>> outoftime
Спасибо, буду иметь в виду.

>> CyBOSSeR
Да, попробовал, но такие программы мне не нужны.
CyBOSSeR
Эксперт C++
2300 / 1670 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
20.12.2009, 17:30     Как обратиться к методу класса из внешней функции? #17
Не используй указатели только потому что их можно использовать. Использовать указатели нужно только тогда когда это действительно необходимо и без них никак.
OVERPOWER8, это не единственная проблема. С указателями ты можешь огрести по полной.
Так все же почему ты используешь указатель на int для хранения возраста?
OVERPOWER8
19 / 19 / 1
Регистрация: 29.11.2009
Сообщений: 224
20.12.2009, 17:39  [ТС]     Как обратиться к методу класса из внешней функции? #18
>> CyBOSSeR
У меня не только указатель для хранения возраста:

C++
1
2
3
int* age;
int* YearsOfService;
int* Salary;
Потому что в таком случае гораздо удобнее будет манипулировать значениями этих характеристик класса.
CyBOSSeR
Эксперт C++
2300 / 1670 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
20.12.2009, 17:46     Как обратиться к методу класса из внешней функции? #19
Цитата Сообщение от OVERPOWER8 Посмотреть сообщение
Потому что в таком случае гораздо удобнее будет манипулировать значениями этих характеристик класса.
Поподробнее можешь объяснить, просто мне не очень понятно, чем манипуляция указателями может быть удобнее? Ведь при любом копировании, присваивании двух экземпляров Employee, они в таком случае будут разделать все члены-данные, которые являются указателями. Т.е.
C++
1
2
3
4
5
6
7
Employee employee;
 
employee.SetAge(20); // employee.age == 20
 
Employee employee2 = employee; // employee.age == 20, employee2.age == 20
 
employee2.SetAge(10); // employee.age == 10, employee2.age == 10
Ели ты конечно, не определишь конструктор копирования, и не перегрузишь оператор присваивания.
OVERPOWER8
19 / 19 / 1
Регистрация: 29.11.2009
Сообщений: 224
20.12.2009, 17:54  [ТС]     Как обратиться к методу класса из внешней функции? #20
>> CyBOSSeR
Ладно, твоя взяла.

Просто делаю так, как МНЕ УДОБНО!, больше ничего не буду разъяснять.
CyBOSSeR
Эксперт C++
2300 / 1670 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
20.12.2009, 20:14     Как обратиться к методу класса из внешней функции? #21
Цитата Сообщение от OVERPOWER8 Посмотреть сообщение
Просто делаю так, как МНЕ УДОБНО!, больше ничего не буду разъяснять.
Смотри сам, огребешь проблем с такими удобствами.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.02.2014, 02:41     Как обратиться к методу класса из внешней функции?
Еще ссылки по теме:
Как из DLL, в котором есть только DllGetClassObject, обратиться к методу, который должен быть в этой DLL? C++ WinAPI
C++ Как обратиться к члену класса
C++ Как обратиться к свойству класса
C++ Вызов метода производного класса через обращение к методу базового класса
C++ Как обратиться к компоненте формы из метода класса?

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

Или воспользуйтесь поиском по форуму:
outoftime
║XLR8║
508 / 430 / 33
Регистрация: 25.07.2009
Сообщений: 2,295
09.02.2014, 02:41     Как обратиться к методу класса из внешней функции? #22
OVERPOWER8, http://google-styleguide.googlecode....k/cppguide.xml делайте лучше так как другим удобно, ибо писать нечитаемый код ... лучше вообще не писать.
Yandex
Объявления
09.02.2014, 02:41     Как обратиться к методу класса из внешней функции?
Ответ Создать тему
Опции темы

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