Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
lvlkoo
.NET C#,ASP.NET MVC
417 / 375 / 174
Регистрация: 16.10.2010
Сообщений: 1,546
Завершенные тесты: 2
#1

Связать классы.

17.05.2011, 10:05. Просмотров 638. Ответов 7
Метки нет (Все метки)

Дрпустим есть два класса и некторые методы в них:

в 1(class c1)
C++
1
2
3
...
void SetLight(int lightcount)
...
в 2(class c2)
C++
1
2
3
...
void TurnPosition(int is_position);
...
хочу построить конструкцию вида
C++
1
2
3
4
5
6
7
8
9
10
void c2::CTurnPosition(int is_position)
{
     int position;
     position = is_position;
     switch(position)
     {
      case 1:
           c1::SetLight(10)
           break;
...
Однако выдает ошибку,что такая ссылка в классе невозможна(c1::SetLight(10))
Подкаже возможно ли както это сделать? или искать другие способы??
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.05.2011, 10:05
Ответы с готовыми решениями:

Как связать абстр. классы?
Необходим совет или помощь в решении проблемы. Код: // a.h class A { ...

Связать классы Education и Info, предоставляющие информацию о сотруднике.
Создать 2 базовых класса Education (содержит информацию об образовании...

Связать следующие классы в иерархию наследования: ArcherCharacter, Wizard, SwordsMan, LongRange
Character (Персонаж), LongRange (Персонаж дальнего действия), Wizard (Маг),...

Непонятна тема (Классы содержащие другие классы, как данные члены )
Изучаю книгу Джесс Либерти(в частности эту главу в данный момент) #include...

Программа по классам, которая использует классы точек и прямых на плоскости, а, возможно, и другие классы
Нужно написать программу, которая использует классы точек и прямых на...

7
ValeryLaptev
Эксперт С++
1050 / 829 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
17.05.2011, 10:07 #2
Так, как написано - только статический метод класса можно вызывать.
Чтобы вызвать обычный, нужен объект.
Либо ты в классе с2 объявляешь поле-объект типа с1, либо нужно передать как параметр в метод.
Тогда метод вызывается так: объект.метод()
1
lvlkoo
.NET C#,ASP.NET MVC
417 / 375 / 174
Регистрация: 16.10.2010
Сообщений: 1,546
Завершенные тесты: 2
17.05.2011, 10:12  [ТС] #3
Спасибо.Принцип работы останеться тот же?
0
ValeryLaptev
Эксперт С++
1050 / 829 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
17.05.2011, 10:15 #4
Цитата Сообщение от lvlkoo Посмотреть сообщение
Спасибо.Принцип работы останется тот же?
Да. Только синтаксис вызова поменяется.
1
lvlkoo
.NET C#,ASP.NET MVC
417 / 375 / 174
Регистрация: 16.10.2010
Сообщений: 1,546
Завершенные тесты: 2
17.05.2011, 10:50  [ТС] #5
А если я создам обьект данного класса(в котором уже есть поле обьект другого класса) в глайной функции,я смогу использовать тот обьект который обьявлен в классе?
0
absokolov
30 / 30 / 3
Регистрация: 10.05.2011
Сообщений: 120
17.05.2011, 10:58 #6
Цитата Сообщение от lvlkoo Посмотреть сообщение
А если я создам обьект данного класса(в котором уже есть поле обьект другого класса) в глайной функции,я смогу использовать тот обьект который обьявлен в классе?
Да!
Конечно смотря какая роль тех функций! Если там просто нужно принять параметры и провести какие-то действия с ними (без членов класса), то проще будет объявить эти методы статическими:

C++
1
static void SetLight(int lightcount)
1
lvlkoo
.NET C#,ASP.NET MVC
417 / 375 / 174
Регистрация: 16.10.2010
Сообщений: 1,546
Завершенные тесты: 2
17.05.2011, 11:05  [ТС] #7
Принимая параметр,он присваевается значению члена класса.Потому и спросил за обьект так как это значение потребуеться в будушем( для вывода сравнения и тд)
0
absokolov
30 / 30 / 3
Регистрация: 10.05.2011
Сообщений: 120
17.05.2011, 11:08 #8
Цитата Сообщение от lvlkoo Посмотреть сообщение
Принимая параметр,он присваевается значению члена класса.Потому и спросил за обьект так как это значение потребуеться в будушем( для вывода сравнения и тд)
Ну в таком случае придется все таки создать члены классов!

C++
1
2
3
4
5
6
7
8
9
10
11
12
c2 cl2;
void cl2.CTurnPosition(int is_position)
{
     c1 cl1;
     int position;
     position = is_position;
     switch(position)
     {
      case 1:
           cl1.SetLight(10)
           break;
...
1
17.05.2011, 11:08
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.05.2011, 11:08

Наследование, базовые классы и производные классы
Добрый вечер.Задание: необходимо разработать поля и методы наследуемые из...

Классы и наследование (Создать класс 3D фигура, и производные классы шар, конус, цилиндр и куб. Создать функцию вычисления объёма.)
Уважаевые, помогите написать прожку на экзамене: Создать класс 3D фигура, и...

классы/дочерние классы/методы
помогите пожалуйста! надо что выводились только учебеники. чтоб былo через...


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

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

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