- 1
static_cast<SomeOtherClass>(this)->SomeMethod();
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+32
static_cast<SomeOtherClass>(this)->SomeMethod();
Чуваки лучше знают, что у них в this
interested 01.09.2012 00:04 # +2
-----
Далее следует развёрнутая дискуссия о пользе static_cast
bazhenovc 01.09.2012 21:54 # +1
Steve_Brown 01.09.2012 23:09 # +1
Разве что какая-нибудь тонкость, но сложно придумать пример.
bazhenovc 02.09.2012 15:37 # +1
bormand 02.09.2012 16:04 # 0
bazhenovc 02.09.2012 21:54 # 0
Steve_Brown 03.09.2012 11:46 # 0
//Base *this;
Derived *p(this);
Впрочем, http://ideone.com/opMF7
Что-то пока не понял.
bazhenovc 03.09.2012 12:02 # +3
bormand 03.09.2012 12:37 # +1
Поведение каста из Base в Derived определено только в одном случае - когда исходный объект на самом деле Derived (или его потомок), который кастанули в Base.
Steve_Brown 03.09.2012 13:10 # +1
Пора отучаться приводить типы скобками.
bormand 03.09.2012 15:07 # +1
an0nym 01.09.2012 05:44 # 0
error: no matching function for call to ‘A::A(B&)’
static_cast<A*>(this)
error: invalid static_cast from type ‘B* const’ to type ‘A*’
bormand 01.09.2012 06:01 # +4
An expression e can be explicitly converted to a type T using a static_cast of the form
static_cast<T>(e) if the declaration “T t(e);” is well-formed, for some invented temporary variable t (8.5). The effect of such an explicit conversion is the same as performing the declaration and initialization and then using the temporary variable as the result of the conversion.
Пример каста из указателя в объект:
http://ideone.com/gNxPQ
Пример каста из объекта в указатель:
http://ideone.com/h33dM
LispGovno 01.09.2012 09:29 # −3
bormand 01.09.2012 09:34 # +1
LispGovno 01.09.2012 11:25 # −2
Да, страуструп тут уже не при делах.
bormand 01.09.2012 14:56 # +1
LispGovno 01.09.2012 16:08 # +1
Степанов, что создал знаменитую изрядно нашумевшую STL, темболее туда не ходит. Даже открещивается от того, что её создал. Говорит, что С++ и в особенности стл спроектированы изрядавон плохо. Ему даже стыдно за себя в молодости и своих калл ег.
LispGovno 02.09.2012 01:36 # +1
ЧИТАТЬ ДАЛЬШЕ>>>
Lure Of Chaos 02.09.2012 10:18 # +4
LispGovno 02.09.2012 11:15 # 0
bormand 02.09.2012 11:26 # 0
7 минут назад ;)
rat4 02.09.2012 13:13 # +2
LispGovno 02.09.2012 13:28 # −2
ЧИТАТЬ ДАЛЬШЕ>>>
LispGovno 02.09.2012 22:29 # +2
Psionic 05.09.2012 16:14 # +2
bazhenovc 05.09.2012 16:27 # +1
guest 14.09.2012 13:36 # 0
вот пример http://ideone.com/gIx5D
defecate-plusplus 14.09.2012 13:40 # +3
but we need to go deeper
rat4 14.09.2012 13:52 # +3