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

List:       koffice-devel
Subject:    Re: structs vs classes; was Re: koffice/kspread
From:       Thorsten Zachmann <t.zachmann () zagge ! de>
Date:       2008-05-30 11:59:25
Message-ID: 200805301359.26083.t.zachmann () zagge ! de
[Download RAW message or body]

On Friday 30 May 2008, Pau Garcia i Quiles wrote:
> Quoting Thorsten Zachmann <t.zachmann@zagge.de>:
> > On Thursday 29 May 2008, Jaroslaw Staniek wrote:
> >> Thomas Zander said the following, On 2008-05-29 10:11:
> >> > On Wednesday 28. May 2008 10:49:55 Christian Ehrlicher wrote:
> >> >> KoPageLayout SheetPrint::paperLayout() const
> >> >> {
> >> >>     return m_settings->pageLayout();   // here the pageLayout is
> >> >> copied }
> >> >>
> >> >> void otherFunction()
> >> >> {
> >> >>   paperlayout().width = 25;
> >> >> }
> >> >
> >> > The pattern intended (and used in Qt) is that the otherFunction would
> >> > have to do;
> >> >   KoPageLayout pl = print.paperLayout();
> >> >   pl.width = 25;
> >> >   print.setPaperLayout(pl);
> >>
> >> This would suggest that KoPageLayout is implicitly shared for
> >> efficiency. It is not, instead it contains uninitialized members as
> >> optimization.
> >>
> >> KoPageLayout (and similar structs) cannot be fully compared to the Qt
> >> pattern, because the former is designed in a C-like way: (again:
> >> uninitialized members).
> >>
> >> Moreover structs with methods could become classes for clarity.
> >>
> >> We fix struct/class warnings every month in KOffice. Looks like a
> >> proposal for JJ before our API stabilizes, and start using classes
> >> everywhere except for real C structs.
> >>
> >> Thoughts?
> >
> > A struct is just a class where members are public as default. I
> > would not like
> > to change all structs to classes as I really enjoy the possibility to
> > write less.
>
> In many places (not only in KOffice) people are writing "struct" in
> the .h but "class" in the .cpp. Adopting a "class-only" policy would
> prevent those errors.

That should be fixed for sure.

Thorsten

_______________________________________________
koffice-devel mailing list
koffice-devel@kde.org
https://mail.kde.org/mailman/listinfo/koffice-devel
[prev in list] [next in list] [prev in thread] [next in thread] 

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