Войти
Unreal EngineФорумПрограммирование

UE4 c++

Страницы: 1 2 Следующая »
#0
7:36, 14 дек. 2015

'ABody::operator =': cannot access private member declared in class 'ABody'

  ABody(ABody const*rhs);

ABody::ABody(const ABody*rhs)
{}
  void operator=(ABody*rhs);

void ABody::operator=(ABody*rhs)
{}

я хз... есть идеи в чем проблема?


#1
7:56, 14 дек. 2015

если стереть нафиг это, пишет тоже самое кстати =))
и ссылается на код в каком то файле, на место в функции мув...
я помню что решал эту проблему, но не помню как...
вот пока пишу, начинает доходить кажется, что надо написать функцию для перемещения...

#2
8:30, 14 дек. 2015

Причём тут UE4 ?

#3
8:31, 14 дек. 2015

innuendo
хз, сейчас вроде уже понимаю что ни с чем.
Да и проблему вроде как локализовал, осталось сделать всё норм =)
или я не прав, и еще пару часов мучиться =)

#4
11:29, 14 дек. 2015
ABody(const ABody&);
  ABody(ABody&&rhs);
  
  ABody& operator=(const ABody&);
  ABody& operator=(ABody&&rhs);

я чего то не пойму.
почему 15 студия(другие не пробовал), выдает мне ошибку на это...
https://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&… EN-US&k=k(C2535)&rd=true

#5
11:37, 14 дек. 2015

и вот дилемма...
если снести методы не семантики перемещения, то баг пропадает...
Комрады =) выручайте, не спал уже больше 24 часов =) п.с спать не советовать, вечером лягу.

#6
15:00, 14 дек. 2015

Beilus

Вот это вот почитай: http://segfault.kiev.ua/smart-questions-ru.html
Может таки разморит на сон.

#7
15:05, 14 дек. 2015

=A=L=X=
в итоге отключился на 3 часа =)))) сейчас почитаю =) спс)
xD
п.с =) гуглить я пытался =) но либо не нашел, либо был слишком сонный =)

#8
15:08, 14 дек. 2015

Beilus
> гуглить я пытался

да не надо гуглить - просто сиди и читай то что там написано.
потом приходи.

#9
15:13, 14 дек. 2015

Beilus
> ABody(const ABody&);
> ABody& operator=(const ABody&);

[ванга_мод]
вангую, что разработчики запретили копирование объектов класса ABody, поместив конструктор копирования и оператор присваивания в приватную секцию класса. стандартный прием, подробнее о нем можно узнать из документации к boost::noncopyable
[/ванга_мод]

#10
15:16, 14 дек. 2015

cranky
хмм... это многое объясняет xD

#11
17:10, 14 дек. 2015

В NWE с такими проблемами не сталкивался. Рекомендую.

#12
19:35, 14 дек. 2015

РЕбята, со всем уважением, не надо тут форсить NWE, п.с посты лишние почищу. Какие смогу =)

#13
19:48, 14 дек. 2015

Beilus
> Какие смогу
Ага, это ключевой момент, постояльчик.

#14
23:42, 14 дек. 2015

> void operator=(ABody*rhs);

>void ABody::operator=(ABody*rhs)
>{}

Оператор присваивания вроде как должен вернуть ссыль на объект?

Так попробуйте:

ABody& operator=(ABody*rhs);

ABody& ABody::operator=(ABody*rhs)
{
    return *this;
}

P.S. И если ещё будет ругаться, то сделайте rhs ссылкой, а не указателем. И лучше константной, если rhs не будет изменяться. Хороший тон, всё такое..

Страницы: 1 2 Следующая »
Unreal EngineФорумПрограммирование

Тема в архиве.