Tag: objects
C++11 Smart Pointer – Part 4: Create shared_ptr objects carefully
We should create shared_ptr objects carefully. Checkout below two cases, [showads ad=inside_post] Advertisements 1.) Try not to use same raw pointer for creating more than one shared_ptr object because in that case different shared_ptr objects will not get to know that they are sharing the pointer with any other shared_ptr objects. How this can create …
C++11 Smart Pointer – Part 4: Create shared_ptr objects carefullyRead More
Be careful with hidden cost of std::vector for user defined objects
While creating and using std::vector with user defined classes we needs some special care otherwise it can hamper the performance of our application. [showads ad=inside_post] Let’s learn by example, Suppose we have an Item Class, Advertisements class Item { public: static int m_ConstructorCalledCount; static int m_DestCalledCount; static int m_CopyConstructorCalledCount; Item() { m_ConstructorCalledCount++; } ~Item() { …
Be careful with hidden cost of std::vector for user defined objectsRead More
C++ : Map Tutorial Part 3: Using User defined class objects as keys in std::map
In this article we will discuss how to use User defined classes as key in std::map. By default std::map uses “operator <” as sorting criteria for keys. For default data types like int and std::string etc, operator < is available by default but for User defined classes operator < is not available by default. Advertisements …
C++ : Map Tutorial Part 3: Using User defined class objects as keys in std::mapRead More
Designing a Multiton: Singleton that returns 5 objects in cycle
Let’s Design a Multiton class i.e. a modified Singleton to return 5 objects in cycle. Logic to Create Multiton Advertisements Instead of keeping a static pointer as member variable keep a vector of pointers as member variable. Now also keep track of how many times getInstance() function is called. To do that use static member …
Designing a Multiton: Singleton that returns 5 objects in cycleRead More
Importance of Constructors while using User Defined Objects with std::vector
For User Defined classes if Copy Constructor and Assignment Operator are public then only one can insert it’s object in std::vector. This is because of two reasons, Advertisements All STL contains always stores the copy of inserted objects not the actual one. So, whenever we insert any element or object in container then it’s …
Importance of Constructors while using User Defined Objects with std::vectorRead More
Iterating over a range of User Defined objects and calling member function using std::for_each
In this article we will discuss how to iterate over a container of user defined objects and call a member function on each of the iterating element.Suppose you have a vector of Employee class objects and you want to call a member function on each of the element in vector. [showads ad=inside_post] Let’s see how …
Designing Callbacks in C++ – Part 2: Function Objects & Functors
In this article we will discuss, what is a Function Object, why do we need function objects and how to use function objects as Callbacks. What is a Function Objects: Advertisements A Function Object / Functor is a kind of Callback with State. In a Programmer’s terminology, Frequently Asked: Designing Callbacks in C++ – Part …
Designing Callbacks in C++ – Part 2: Function Objects & FunctorsRead More
Restrict dynamic deletion of objects created on stack
Many times we encounter a situation where we need to delete a pointer but we are not sure that how this pointer is created i.e. either on Heap or on stack. Check out this function, Advertisements class Dummy; void deletePointer(Dummy * ptr) { // Do you know this passed pointer was // created on heap …
Restrict dynamic deletion of objects created on stackRead More
C++ : How to Sort a List of objects with custom Comparator or lambda function
In this example we will discuss different ways to sort a std::list of user defined data types with custom comparators or lambda functions. Suppose we have a type Player that contains Id and name. Advertisements struct Player { int id; std::string name; Player(int playerId, std::string playerName) : id(playerId), name(playerName) { } bool operator <(const Player …
C++ : How to Sort a List of objects with custom Comparator or lambda functionRead More
C++ : Different Ways to iterate over a List of objects
In this article we will discuss different ways to iterate through std::list of objects. Suppose we have a struct Player that contains id and name i.e. Advertisements struct Player { int id; std::string name; Player(int playerId, std::string playerName) : id(playerId), name(playerName) { } }; Lets create a list Player objects i.e. std::list<Player> listofPlayers = { …
C++ : Different Ways to iterate over a List of objectsRead More