P Zoltan wrote: > Hello, > I've started to put qvector.h and qvector.cpp in a shape that I like > more. However, there are a few strange things:
Yeah, I wrote the class for a school assignment, the methods that are actually used are generally half-way decent. The only real thing it has going for it is that it was much much cleaner than the previous code. > - can't find the implementation of the operator: > QuickVector & QuickVector::operator*=(const double y); oops! fixed. > The operator appeares in the header, but not in the cpp file. > - what's the difference between > inline double &operator[]( const int i) > and > inline double operator[]( const int i) const > These look stange to me, because C++ should make difference between > methods by their name and parameter definition, not by the return > type; also the same operator is constant or not? Yeah, that might be a mistake. The way the class was really meant to be used was through the smalltalk style "at" and "atPut" methods, these are unambiguous reads and writes... Those C++ style [] operators allow for some really strange code, when seen from the eyes of a C programmer... I put the [] methods in to make it work with the existing code base. It would probably be an improvement to force all code to use one or the other, I prefer the at and atPut pattern because it makes it easy to find reads and writes. In a number of places, the syntax is cleaner as well... admittedly, I'm probably using C coding styles when I should be using C++ styles. > - the return type in the operator declaration > QuickVector &operator-(const QuickVector &y) const; > looks also stange, because here: > > http://www.java2s.com/Code/Cpp/Overload/DemoOverloadtheandrelativetoMyClass.htm > the "-" operator returns a simple object, not a reference. The current > declaration might produce memory leak. Correct. It is designed to accommodate: QuickVector x = a - b; Obviously, this is much more user friendly in a garbage collected environment. If you don't need a, you can use: a -= b; Actually, I don't have a -= but oh well... > Also a remark: I'm starting to convert tabs into 4 spaces, as this is the > preferred way in kde style c++ coding. I've been a formatting nazi myself, submitting many commits that were nothing but formatting... I find tabs better because they are easier to navigate by the arrow keys. The only argument for 4-spaces is that the tab width is not always consistient and that it leads to excessive indentation, ( which is more of a code organization issue except in the most irreducably complex algorithms...) -- New president: Here we go again... Chemistry.com: A total rip-off. Powers are not rights. ------------------------------------------------------------------------------ _______________________________________________ Ktechlab-devel mailing list Ktechlab-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/ktechlab-devel