Похоже, что вы отсутствуете, включая IOBluetooth.framework в своем проекте. Вы можете добавить его по:
-Нажмите на свой проект в левом верхнем углу левой панели (синий значок).
. На средней панели щелкните вкладку «Фазы построения».
-Включить «Связывание двоичных файлов с библиотеками», нажмите кнопку «плюс».
-Закройте IOBluetooth.framework из списка и нажмите Добавить.
[/g0]
[/g1]
Это позволит убедиться, что определения IOBluetooth.framework найдены компоновщиком , Вы можете видеть, что фреймворк является членом вашей цели, щелкнув фреймворк в левой панели и увидев целевое членство структуры в правой панели (обратите внимание, что я переместил структуру в группе Frameworks для целей организации):
[/g2]
Два ответа приходят на ум:
версия неконстанты является более близким соответствием.
, Если это назвало перегрузку константы для случая неконстанты, затем при каких обстоятельствах был бы, это когда-нибудь называет перегрузку неконстанты?
можно заставить это использовать другую перегрузку путем кастинга a
к const Foo *
.
Редактирование: От Аннотации C++
Ранее, в разделе 2.5.11 понятие перегрузки функции было представлено. Там это отметило, что функции членства могут быть перегружены просто их атрибутом константы. В тех случаях компилятор будет использовать функцию членства , соответствующую наиболее тесно квалификации константы объекта:
Поскольку не указатель константы. Поэтому функция неконстанты является более близким соответствием. Вот то, как можно вызвать функцию константы:
const Foo* b = a;
std::string name = b->Name();
, Если Вы имеете и константу и перегрузку неконстанты, и хотите назвать константу один на объекте неконстанты, это могло бы быть признаком плохого дизайна.
Компилятор не принимает во внимание, как Вы используете возвращаемое значение в его определении; это не часть правил. Это не знает, делаете ли Вы
std::string name = b->Name();
, или
b->Name() = "me";
Это должно выбрать версию, которая работает в обоих случаях.
Можно добавить функцию "cName", которая эквивалентна "Имени () константа". Таким образом, можно звонить, версия константы функции, не бросая к константе возражают сначала.
Это главным образом полезно с новым ключевым словом, автоматическим в C++ 0x, который является, почему они обновляют библиотеку для включения cbegin (), cend (), crbegin (), crend () для возврата const_iterator, даже если объект является неконстантой
, Что Вы делаете, вероятно, лучше сделан при наличии setName () функция, которая позволяет Вам менять имя вместо того, чтобы возвратить ссылку на базовый контейнер, и затем "возможно", это изменяется.