Reply to comment
- Not Just a Contact Database
-
These optional components give you more power to connect and engage your supporters.

civiCASE
Case management for clients and constituents.

civiCONTRIBUTE
Online fundraising and donor management.

civiEVENT
Online event registration and participant tracking.

civiMEMBER
Online signup and membership management.

civiMAIL
Personalized email blasts and newsletters.

civiREPORT
Report generation and template management.



Re: Multiple Inheritance
It's been a while, and I will have to translate my memory of multiple inheritance complexities in the OOP world into the CiviCRM types world, so bear with me...but imagine the case where types A and B both have a custom field called X. Then type C derives from A and B. What is the meaning of X in the context of C? It is a solvable problem, but there are multiple possible solutions, and the code to enforce whatever solution the language architects choose gets nasty quickly. Just remembering how C++ implemented multiple inheritance rules makes me queasy :-).