быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,666
1

Сам вопрос: почему функция-член одного класса не вызывается из функции-члена другого класса?

10.05.2011, 16:40. Показов 1443. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
//Щас всё объясню. Так, имеем два класса, в одном я определил функцию-член. Все конструкторы и прочее 
//опущены для уменьшения кода
 
 
#include <iostream>
#include <windows.h>
using namespace std;
 
//Вот первый класс и в нём объявлена функция Get_kol_vo_kvartalovl
class gorod{
 public:
  void Get_kol_vo_kvartalovl(){}; 
};
 
 
//Вот второй класс и в нём объявлена функция f
class kvartal{
 public:
  void f(const gorod src); 
};
 
 
//Так, а теперь просто-напросто определим функцию f
//И главное- в ней будет присутствовать вызов gorod::Get_kol_vo_kvartalovl
void kvartal::f(const gorod &src) {
 //Вот этот вызов. Нтчего не получается, не компилируется
 src.Get_kol_vo_kvartalovl();
};
 
 
int main(){
    return 0;
}
C++
1
2
3
4
5
6
7
8
//Теперь внимание- если объявить объект типа gorod (см. ниже) и скопировать src в gorod, то функция 
//вызывается. Почему нельзя обойтись одной лишь ссылкой на объект без создания 
//ДОПОЛНИТЕЛЬНОГО объекта?
void kvartal::f(const gorod &src) {
 //То есть объявляем g, копируем src в g и всё OK
 gorod g (src);
 g.Get_kol_vo_kvartalovl();
};
А ошибку пишет такую:
passing `const gorod' as `this' argument of `void gorod::Get_kol_vo_kvartalovl()' discards qualifiers
Я перевёл коряво, но всё равно ничё не понял

...Код мой, но подобный код я увидел в одной очень хорошей, на мой взгляд книге и он тоже не компилился с той ж не ошибкой. В чём дело, друзья?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.05.2011, 16:40
Ответы с готовыми решениями:

Вызов функции из одного класса кнопкой из другого класса
Доброго времени суток. Помогите разобраться с сигналами и слотами. Уже устал перечитывать не могу...

Функция-друг одно класса, член другого.
Привет. Не поможете как сделать чтобы функция одного класса была функцией-другом другого класса? ...

Как связать сигнал одного класса со слотом другого класса, содержащего указатель на объект этого класса?
Подскажите, пожалуйста, как связать сигнал одного класса со слотом другого класса, содержащего...

Массив объектов класса как член другого класса
Здравствуйте. У меня тут возникла проблемка #include &quot;main.h&quot; class player { public: ...

1
5231 / 3203 / 362
Регистрация: 12.12.2009
Сообщений: 8,112
Записей в блоге: 2
10.05.2011, 16:46 2
Цитата Сообщение от kravam Посмотреть сообщение
C++
1
void f(const gorod &src);
Для константных объектов могут быть вызванны только константные ф-ции, попробуй так:

C++
1
void Get_kol_vo_kvartalovl()const;
ну либо
C++
1
void f(gorod &src);
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.05.2011, 16:46
Помогаю со студенческими работами здесь

Почему вызывается перегрузка виртуальной функции из приватной секции дочернего класса?
Как вообще такое происходит class A { public: virtual void foo(){std::cout&lt;&lt;&quot;A\n&quot;; } };...

С помощью делегата из одного класса вызвать private метод с другого класса
доброго времени суток. такой вопрос. С применением делегатов и пониманием проблем нет когда...

Передача значения переменной из метода одного класса в метод другого класса
Добрый вечер! Есть основная форма Form1 в которой есть метод private void button1_Click(object...

Можно ли как-то получить из одного класса исходный код другого класса?
Предположим есть два публичных класса. Один находится в одной части проекта, другой где-нибудь в...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru