Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 8 years ago.
Improve this question
I was given a question: how operator overloading in C++ impacts on performance?
I'm not pretty sure how to answer it. I fully understand the idea and how to overload operators in C++, but what about performance?
Calling an overloaded operator is the same as calling any function in the object. If you mark the operator as inline, you get the same benefits (or lack thereof) as any other inline function.
Nothing complicated at all.
Related
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 6 years ago.
Improve this question
I know how to define destructor is just like this
~ClassName()
{
}
and destructor can't have parameter. then why we must write parentheses after the class name? since destructor can't have parameter and i think there is no benefit of it. or there is other function of it?
i think it will be better if there is no parantheses needed because it make clear destructor can't have parameter
~ClassName
{
}
Two reasons so far
It is a function so it needs the syntax declaration of a function.
Why is the function declaration syntax like that? It's how the grammar
was defined.
In the D programming language the parenthesis of functions are optional when there are no arguments. D is designed to be a better C++. You might be interested in that language https://dlang.org/
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 7 years ago.
Improve this question
A well-known principle of good programming style says: "explicit is better than implicit". Don't inherited constructors go against this principle? (A single using statement that includes all the constructors of the base class isn't very explicit, is it?)
No, this principle is for explicit keyword with constructors and conversion operators, not for explicitely typing a lot of code. using won't change whether the constructors are explicit or implicit.
This principle is (as most principles in C++) also quite disputable and over-generalized.
Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 8 years ago.
Improve this question
Or in a class method, call other class' method/free function and pass this pointer as the parameter. Is there any good practice for this? Or it is a bad practice and I should not doing so?
It usually makes no sense to return the this pointer from class meber functions.
(since the caller must be already holding a reference to the instance,, to call the method/operator in question, and you cannot change it returning di9fferent values anyway).
It makes sense to return *this from various types of member functions (specific operators in particular, e.g. operator=()), to enable chaining of operations on results.
NOTE:
Some of the overloadable operator signatures (as the mentioned assignment operator) require to implement such behavior to work correctly with the semantics defined by C++!
Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 9 years ago.
Improve this question
During an interview for the position of C/C++ , I faced one question Write a c program to implement sizeof operator ,I have wrote the code ,Then he asked me to implement using bitwise operations .I tried for int.... But I coudlnt ,,,, anyone can post the code ,, how to implement ,,,
You cannot do this, since the set of data types that support bitwise operations is not a superset of the set of types that support sizeof.
Proof: int*.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about programming within the scope defined in the help center.
Closed 9 years ago.
Improve this question
I've stumbled upon strange behavior when using operator+ on QStrings until I found out that QString doesn't overload operator+ (in contrary to std::string). What reasons are there not to do it (especially since they overloaded quite a bunch of other operators)?
Edit: Sorry, I have looked up the wrong section in the docs. Can someone please close the question?
It does provides the + operator, but the question is what you have at the right hand side?