From 47a1405707065773cd4e2e3189051e8d7d0dd330 Mon Sep 17 00:00:00 2001 From: hsutter Date: Tue, 29 Dec 2015 10:46:58 -0800 Subject: [PATCH] Applied suggestion in PR #343. --- CppCoreGuidelines.md | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/CppCoreGuidelines.md b/CppCoreGuidelines.md index 05e8292..958156c 100644 --- a/CppCoreGuidelines.md +++ b/CppCoreGuidelines.md @@ -10271,15 +10271,25 @@ Immutable objects are easier to reason about, so make object non-`const` only wh ##### Reason - ??? +A member function should be marked `const` unless it changes the object's observable state. -##### Example - - ??? +##### Example; bad + class Point { + int x, y; + public: + int getx() { return x; } // BAD, should be const as it doesn't modify the object's state + // ... + }; + + void f(const Point& pt) { + int x = pt.getx(); // ERROR, doesn't compile because getx was not marked const + } + ##### Enforcement -??? +* Flag a member function that is not marked `const`, but that could be `const` because its definition does not modify any member variable. + ### Con.3: By default, pass pointers and references to `const`s