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

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

Войти
Регистрация
Восстановить пароль
 
lvlkoo
.NET C#,ASP.NET MVC
334 / 290 / 101
Регистрация: 16.10.2010
Сообщений: 1,292
Завершенные тесты: 2
#1

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

17.05.2011, 10:05. Просмотров 597. Ответов 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))
Подкаже возможно ли както это сделать? или искать другие способы??
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.05.2011, 10:05     Связать классы.
Посмотрите здесь:

Как связать абстр. классы? - C++
Необходим совет или помощь в решении проблемы. Код: // a.h class A { public: virtual void somefuncA() = 0; }; // b.h ...

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

Связать следующие классы в иерархию наследования: ArcherCharacter, Wizard, SwordsMan, LongRange - C++
Character (Персонаж), LongRange (Персонаж дальнего действия), Wizard (Маг), SwordsMan (Мечник), Archer (Лучник). #include <string> //...

Связать программу - C++
Надо написать программу, в которую вводишь текст и она выводит этот же текст только цифры от 0 до 9 заменены словами. 4 = four а если ...

Связать векторы - C++
Доброго времени суток. У меня есть 4 класса: студент(id, имя, фамилия), факультет(id, название), занятия(id, название, тип), оценка(1-й...

Как связать 2 программы - C++
Как одной программе считывать значения из другой программы и выводить результат исходя из взятых значений?

Связать два вектора - C++
Здравствуйте.Может кто подскажет,как реализовать такую задачу? Есть два вектора: vector<string> и vector<int>. В первом записан набор...

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

C++
1
static void SetLight(int lightcount)
lvlkoo
.NET C#,ASP.NET MVC
334 / 290 / 101
Регистрация: 16.10.2010
Сообщений: 1,292
Завершенные тесты: 2
17.05.2011, 11:05  [ТС]     Связать классы. #7
Принимая параметр,он присваевается значению члена класса.Потому и спросил за обьект так как это значение потребуеться в будушем( для вывода сравнения и тд)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.05.2011, 11:08     Связать классы.
Еще ссылки по теме:

Связать две функции - C++
#include <iostream> int sd(int n, int d = 1) { if (n==0) { return 0; } else

связать буквы в слово - C++
Как же соединить буквы в потоке? они следуют друг за другом.

Правильно связать модули - C++
//main.cpp #include <iostream> #include "header.hpp" using namespace std; int main() { f(); system("pause"); ...

Связать Matlab и visual studio - C++
Пробую создать dll'ку в visual(с++) и подключить ее потом к matlab. Выдает сделующую ошибку: 1>------ Построение начато: проект:...

Связать переменные в Code BLocks C++ - C++
В одно проекте связываю файлы. В одном файле вычисления, а в другом - задание переменных. Выдает ошибку. #include <iostream> ...


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

Или воспользуйтесь поиском по форуму:
absokolov
29 / 29 / 1
Регистрация: 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;
...
Yandex
Объявления
17.05.2011, 11:08     Связать классы.
Ответ Создать тему
Опции темы

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