20 / 16 / 11
Регистрация: 07.12.2013
Сообщений: 244
|
||||||
1 | ||||||
Методы доступа. Как именно метод привязывается к определённой переменной31.12.2013, 07:40. Показов 1451. Ответов 18
Метки нет (Все метки)
Привет,форумчане.
Изучаю с++ по Либерти. Дошёл до классов,точнее до методов доступа. Написал код:
Далее я хочу присвоить переменной speed значение "5" :Gas.Setspeed(5);. Компилятор выдал ошибки: 1>first.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: void __thiscall Car::Setspeed(int)" (?Setspeed@Car@@QAEXH@Z) в функции _main 1>C:\Users\PC\documents\visual studio 2010\Projects\first\Debug\first.exe : fatal error LNK1120: 1 неразрешенных внешних элементов Я не совсем понял,как именно метод привязывается к определённой переменной,видимо в этом ошибка.Просьба расписать верный вариант.
0
|
31.12.2013, 07:40 | |
Ответы с готовыми решениями:
18
Метод объекта не привязывается к объекту Как выполнять методы в определенной последовательности? Как проверить размер чаровской переменной именно в битах Как работает метод Post, как именно он пересылает данные |
Заблокирован
|
||||||
31.12.2013, 07:56 | 2 | |||||
Видимо, руками "привязать". Никто за тебя это не сделает
1
|
20 / 16 / 11
Регистрация: 07.12.2013
Сообщений: 244
|
|
31.12.2013, 08:58 [ТС] | 3 |
Так приставки get и set имеют значение?Или это просто рандомное имя метода?
0
|
102 / 93 / 36
Регистрация: 01.04.2013
Сообщений: 654
|
|
31.12.2013, 09:01 | 4 |
Можешь назвать как угодно, работать будет также.
Вопрос в том, поймут ли тебя...
1
|
20 / 16 / 11
Регистрация: 07.12.2013
Сообщений: 244
|
||||||
31.12.2013, 10:34 [ТС] | 5 | |||||
Пример из учебника:
Этот класс имеет четыре открытых метода.Getage и Setage дают доступ к переменной itsAge.Getweight и Setweight дают доступ к переменной itsWeight. Вопрос в том,каким образом методы привязаны к определённым переменным,исходя из этого примера.Почему Getage и Setage привязаны именно к itsAge,а не к itsWeight.Я не понимаю принципа из этого примера. Разъяните идиоту.
0
|
Модератор
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,712
|
||||||
31.12.2013, 11:01 | 6 | |||||
1
|
20 / 16 / 11
Регистрация: 07.12.2013
Сообщений: 244
|
||||||
31.12.2013, 13:03 [ТС] | 7 | |||||
То ли я такой тупой,то ли...
0
|
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
|
|
31.12.2013, 13:12 | 8 |
Реализаций методов нет, вот и выдаёт.
Добавлено через 4 минуты И где там в книге такой код? Это же начало, объвление класса. Дальше почитайте, там и реализация методов будет, и код с main().
1
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
|
31.12.2013, 13:15 | 9 |
Верна, но недостаточна. alsav22 уже сказал в чем дело. От себя хочу добавить, что имена функций могут быть какие угодно (учитывая разумные ограничения), что будет делать та или иная функция решает программист. Однако название давать надо говорящее и не противоречивое.
Ну, можно возвращать например прежнее значение.
get-методы хорошо бы сделать константными. Но это уже другая история
1
|
20 / 16 / 11
Регистрация: 07.12.2013
Сообщений: 244
|
||||||
31.12.2013, 13:50 [ТС] | 10 | |||||
Люди,тема создавалась,чтобы я понял как метод привязывается к переменной.
Как вы сами бы определили,что Getage отвечает именно за itsAge,а не за itsWeight!!! Вы определяете по названию метода и переменной?Или как?Объясните мне,как вы это определили!!!Я для этого тему и создал,чтобы понять,как методы привязываются к переменным.Наверное такая элементарщина,но уже несколько дней не могу понять.
0
|
73 / 73 / 1
Регистрация: 02.08.2008
Сообщений: 107
|
|
31.12.2013, 13:59 | 11 |
Getage, Setage . . . itsAge
Getweight, Setweight . . . itsWeight В Вашем коде Getage и Setage не отвечают за переменную itsAge, а Getweight и Setweight не отвечают за переменную itsWeight. У них на данном этапе просто имена похожи. В Вашем коде ничего ни к чему не привязано. Методы в нём не реализованы. Смотрите пост zss. У него уже всё привязано и видно, что за что отвечает.
1
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
|
31.12.2013, 14:02 | 12 |
С какой переменной будет связан (и будет ли вообще) метод определяет программист. Как напишите, так и будет.
Никакой связи на уровне языка между именем метода и тем что он будет делать нет. Автоматически никак. Нужно написать ручками код (реализацию метода), который обозначит эту связь. Читайте теорию про объявление и определение функций и переменных.
1
|
107 / 107 / 21
Регистрация: 29.08.2012
Сообщений: 453
|
|
31.12.2013, 14:08 | 13 |
В этом куске кода отсутствуют тела методов. Вот эти 4 строки - это просто объявления методов. Вот эта привязка, которая так мучает, находится в теле метода. Там всё видно, что чему присваевается или какое значение возвращается.
Названия же могут быть абсолютно любыми, но смысла в таких нету. Принято писать приставки get и set чтобы было сразу видно, что этот метод делает: возвращает какое-то значение или устанавливает. Но это только условности.
1
|
20 / 16 / 11
Регистрация: 07.12.2013
Сообщений: 244
|
|
31.12.2013, 14:31 [ТС] | 14 |
Видима в книге представлена логическая привязка,а не синтаксическая.
0
|
107 / 107 / 21
Регистрация: 29.08.2012
Сообщений: 453
|
|
31.12.2013, 15:14 | 15 |
Видимо, там просто не написано тело метода.
1
|
Jupiter
|
01.01.2014, 17:04
#18
|
1
|
20 / 16 / 11
Регистрация: 07.12.2013
Сообщений: 244
|
|
02.01.2014, 07:40 [ТС] | 19 |
Всем спасибо,нужно было действительно прочитать пару страниц,а не пудрить вам мозги...
0
|
02.01.2014, 07:40 | |
02.01.2014, 07:40 | |
Помогаю со студенческими работами здесь
19
Методы доступа - как это работает? Как программно назначить права доступа к определенной ветке реестра? Чтение переменной из файла и занесение данных определенной переменной в combobox Как сделать чтение определенной переменной из бинарного файла Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |