C++ Articles

Page 535 of 597

Rule of Three vs Rule of Five in C++?

George John
George John
Updated on 24-Jun-2020 740 Views

The Rule of three is a rule of thumb when using C++. This is kind of a good practice rule that says that If your class needs any ofa copy constructor, an assignment operator, or a destructor, defined explicitly, then it is likely to need all three of them.Why is this? Its because, if your class requires any of the above, it is managing dynamically allocated resources and would likely be needing the other to successfully achieve that. For example, if you require an assignment operator, you would be creating copies of objects currently being copied by reference, hence allocating ...

Read More

What is Rule of Five in C++11?

Chandu yadav
Chandu yadav
Updated on 24-Jun-2020 825 Views

The rule of five is applied in C++ for resource management. Resource management frees the client from having to worry about the lifetime of the managed object, potentially eliminating memory leaks and other problems in the C++ code. But this management comes at a cost. The Rule of The Big Five states that if you have to write one of the following functions then you have to have a policy for all of them. If we have an Object Foo then we can have a FooManager that handles the resource Foo. When implementing FooManager, you'll likely all need the following ...

Read More

What are the differences between -std = c++11 and -std = gnu++11?

George John
George John
Updated on 24-Jun-2020 2K+ Views

GNU C++ compiler, g++, provides extensions to the C++ language. The difference between the two options is whether these GNU extensions that might violate the C++ standard are enabled or not. Note that some extensions can still be in effect when using -std = c++11, if they don't violate the standard.The list of extensions to the C++ language in GNU compiler can be found here − https://gcc.gnu.org/onlinedocs/gcc/C_002b_002b-Extensions.html

Read More

C++11 Overview

George John
George John
Updated on 24-Jun-2020 1K+ Views

C++11 is the modern C++ standard published in 2011. This brought many major extensions and improvements to the existing language. It was approved by International Organization for Standardization (ISO) on 12 August 2011 and replaced C++03.C++11 was also known as C++0x. This is because, For the next revision, it was supposed that the next Standard after would be done by 2008, but since it was uncertain, it was named C++0x, where the x stood for either 8 or 9. Though planning shifted and it is now called C++11. So, C++0x was the name for the standard before it was published. ...

Read More

How to access a local variable from a different function using C++ pointers?

George John
George John
Updated on 24-Jun-2020 1K+ Views

You can't access a local variable once it goes out of scope. This is what it means to be a local variable. Though, Let us look at an example where you MIGHT be able to access a local variable's memory outside its scope.Example#include int* foo() {    int x = 3;    return &x; } int main() {    int* address = foo();    cout

Read More

Where can I find the current C or C++ standard documents?

Nishtha Thakur
Nishtha Thakur
Updated on 23-Jun-2020 195 Views

You can find the current C standard documents on ANSI web store. https://webstore.ansi.org/RecordDetail.aspx?sku=INCITS%2FISO%2FIEC+9899-2012You can find the current C++ standard documents on the ISO C++ website for buying −  https://www.iso.org/standard/68564.htmlThe working draft of the ISO C++ standard is also available on  https://isocpp.org/std/the-standard

Read More

When should static_cast, dynamic_cast, const_cast and reinterpret_cast be used in C++?

V Jyothi
V Jyothi
Updated on 23-Jun-2020 4K+ Views

const_castcan be used to remove or add const to a variable. This can be useful if it is necessary to add/remove constness from a variable.static_castThis is used for the normal/ordinary type conversion. This is also the cast responsible for implicit type coersion and can also be called explicitly. You should use it in cases like converting float to int, char to int, etc.dynamic_castThis cast is used for handling polymorphism. You only need to use it when you're casting to a derived class. This is exclusively to be used in inheritence when you cast from base class to derived class.reinterpret_castThis is ...

Read More

What is the copy-and-swap idiom in C++?

Ankith Reddy
Ankith Reddy
Updated on 23-Jun-2020 385 Views

The assignment consists of 2 steps, tearing an object's old state and building a new state for it. The destructor is used for the first step and a copy constructor does the second step. Implementing both of these is straightforward. But when overloading the assignment operator, it can become quite difficult to implement. The copy and swap idiom is a solution for the same.This idiom uses the copy-constructor to build a local copy of the data. It then swaps the old data with the new data using the swap function. The temporary copy is then destructed using the destructor. We ...

Read More

Why is it faster to process a sorted array than an unsorted array in C++?

Anvi Jain
Anvi Jain
Updated on 23-Jun-2020 373 Views

In C++, it is faster to process a sorted array than an unsorted array because of branch prediction. In computer architecture, a branch prediction determines whether a conditional branch (jump) in the instruction flow of a program is likely to be taken or not.Let’s take an example −if(arr[i] > 50) {    Do some operation B } else {    Do some operation A }If we run this code for 100 elements in unsorted and sorted order below things will be happened −For sorted array −1, 2, 3, 4, 5, …… 50, 51………100 A, A, A, A, A A, B ...

Read More

What is The Rule of Three with reference to C++?

Govinda Sai
Govinda Sai
Updated on 23-Jun-2020 222 Views

The Rule of three is a rule of thumb when using C++. This is kind of a good practice rule that says that If your class needs any ofa copy constructor, an assignment operator, or a destructor, defined explicitly, then it is likely to need all three of them.Why is this? Its because, if your class requires any of the above, it is managing dynamically allocated resources and would likely be needing the other to successfully achieve that. For example, if you require an assignment operator, you would be creating copies of objects currently being copied by reference, hence allocating ...

Read More
Showing 5341–5350 of 5,962 articles
« Prev 1 533 534 535 536 537 597 Next »
Advertisements