![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
decembrist |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 238 Регистрация: 1.4.2004 Репутация: нет Всего: нет |
Подскажите пожалуйста!
![]() Я создал класс
и хочу работать с классом через указатели
Как мне обращаться к объекту класса через указатель. В частности создать класс с помощью конструктора Metka() и обращаться к функциям класса через указатель? *М1= new Metka(); - не проходит |
||||
|
|||||
sergejzr |
|
|||
![]() Un salsero ![]() Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 19 Всего: 360 |
Что-то типа такого
![]()
|
|||
|
||||
maxim1000 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 17 Всего: 110 |
обращение к методам или полям класса (два варианта):
1. M1->timeObj=0; 2. (*M1).timeObj=0; оператор new возвращает указатель на созданный класс выражение *M1 имеет тип класса, а не указателя на класс, поэтому надо так: M1=new Metka(); -------------------- qqq |
|||
|
||||
chipset |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: 27 Всего: 165 |
M1 = new Metka();
конструктор возвращает обьект на созданный обьект. Обращение по ссылке выполняется так: M1->timeObj = 666; --------------------
|
|||
|
||||
decembrist |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 238 Регистрация: 1.4.2004 Репутация: нет Всего: нет |
Тогда у меня такой вопрос. Почему после того как я пишу
компилятор выдает ошибку error C2679: binary =': no operator found which takes a right-hand operand of type 'Metka*' (or there is no acceptable conversion) |
|||
|
||||
Artiom |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1031 Регистрация: 11.3.2003 Где: Минск\Баку Репутация: нет Всего: 17 |
Нужно переопределить оператор =. Как это сделать было написано на форуме, воспользуйся поиском.
-------------------- Если тебя жизнь трахает, значит, ты ещё живой |
|||
|
||||
maxim1000 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 17 Всего: 110 |
для указателей не нужно переопределять оператор присваивания
дело в том, что при объявлении указателя * нужно указывать для каждой переменной ![]() Metka *M1,*M2; -------------------- qqq |
|||
|
||||
[ss]3L33T@ |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 123 Регистрация: 14.10.2003 Где: Казармы Репутация: -1 Всего: 1 |
decembrist
--------------------
Понастоящему добрый человек всегда простит и забудет вам ваше зло, но он никогда не простит и не забудет вашего добра[ss]3L33T@ |
|||
|
||||
sergejzr |
|
|||
![]() Un salsero ![]() Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 19 Всего: 360 |
[ss]3L33T@
Ну что? Разве это будет работать? |
|||
|
||||
chipset |
|
||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: 27 Всего: 165 |
maxim1000 прав.
Для лучшей читабельности желательно писать
--------------------
|
||||
|
|||||
bel_nikita |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Эксперт Сообщений: 2304 Регистрация: 12.10.2003 Где: Поезд №21/22 ( ст . Прага ) Репутация: 21 Всего: 47 |
chipset
Не-ееее, для лучшей читабельности, лучше так: ![]()
|
||||||
|
|||||||
decembrist |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 238 Регистрация: 1.4.2004 Репутация: нет Всего: нет |
Спасибо всем! Заработало! Ошибка была в том, что я писал
а надо было, как посоветовал maxim1000
|
||||
|
|||||
[ss]3L33T@ |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 123 Регистрация: 14.10.2003 Где: Казармы Репутация: -1 Всего: 1 |
decembrist
Разница лишь в том, что в первом варианте у тебя только M1 - ссылка, а во втором они оба - ссылки. --------------------
Понастоящему добрый человек всегда простит и забудет вам ваше зло, но он никогда не простит и не забудет вашего добра[ss]3L33T@ |
|||
|
||||
Wowa |
|
|||
Эксперт ![]() Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: нет Всего: 290 |
А какую роль играет то, что тут между * и M1 стоит пробел?
|
|||
|
||||
gepard |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2477 Регистрация: 29.2.2004 Репутация: 2 Всего: 40 |
Admin
Никакой. -------------------- Когда начинаются цифровые войны, а траффик разносит моё сознание по бесконечным просторам инета, подобно ветру, разносящему листву по полям, тогда и только тогда я чувствую себя свободным! © Я, Берсерк, что значит - Неистовый. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |