Merge pull request #269 from arxanas/style-guide-memory-management

Added section on memory management to CONTRIBUTING.md.
This commit is contained in:
Gavin Bisesi 2014-08-07 15:51:51 -04:00
commit 0de0658acd

View file

@ -103,3 +103,32 @@ Use only spaces. Four spaces per tab.
Do not have trailing whitespace in your lines.
Lines should be 80 characters or less, as a soft limit.
### Memory Management ###
New code should be written using references over pointers and stack allocation
over heap allocation wherever possible.
// Good: uses stack allocation and references
void showCard(const Card &card);
int main()
{
Card card;
showCard(card);
}
// Bad: relies on manual memory management and doesn't give us much
// null-safety.
void showCard(const Card *card);
int main()
{
Card *card = new Card;
showCard(card);
delete card;
}
(Remember to pass by `const` reference wherever possible, to avoid accidentally
mutating objects.)
When pointers can't be avoided, try to use a smart pointer of some sort, such
as `QScopedPointer`, or, less preferably, `QSharedPointer`.