[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