[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    developer.kde.org/documentation/library/kdeqt/kde3arch
From:       Luboš Luňák <l.lunak () kde ! org>
Date:       2003-02-25 9:34:27
[Download RAW message or body]

CVS commit by lunakl: 

Explicitly note that also reshuffling data members in a class breaks BC.
Changing access rights to data members may lead to breaking BC.
Making access more restricted breaks backwards compatibility.
Note the existence of the virtual_hook workaround.


  M +8 -4      devel-binarycompatibility.html   1.7


--- developer.kde.org/documentation/library/kdeqt/kde3arch/devel-binarycompatibility.html  #1.6:1.7
@@ -69,5 +69,6 @@
 
 <li> add new virtual functions as this will change the layout of the
-virtual table and thus break subclasses.
+virtual table and thus break subclasses. (In really necessary cases,
+there may be a workaround possible though - ask on mailing lists).
 
 <li> change the order of virtual functions in the class
@@ -90,14 +91,17 @@
 </td></tr></table>
 
-<li> change the access rights to some functions, for example from
+<li> change the access rights to some functions or data members,
+for example from
 <tt>private</tt> to <tt>public</tt>. With some compilers, this
 information may be part of the signature. If you need to make a
 private function protected or even public, you have to add a new
 function that calls the private one. <b>Note:</b> for KDE code
-it is accepted to change the access right to a method.
+it is accepted to make methods (not data members) more accessible
+(i.e. changing private->protected->public).
 The only compiler affected by this, that we know of, is MSVC++,
 and KDE doesn't compile on Windows anyway.
 
-<li> add new data members to a class except static ones.
+<li> add new data members to a class or change order of data members
+in a class (doesn't apply to static ones).
 
 <li> change the class hierachy apart from adding new classes.


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic