Implicit type conversions in C++ can be quite problematic . To take care of type conversion issues , C++ provides us with a simple mechanism .
use the explicit keyword .
so for a class like Array
class Array{
public:
explicit Array(int size){
...
}
};
so by using the explicit keyword in this manner , you tell the compiler to use the constructor only
when explicit object construction is taking place.
another way around the explicit keyword is :
class Array{
public:
class ArraySize{
public:
ArraySize(int size)
this->size = size;
}
private:
int size;
};
Array(ArraySize size){
...
}
};
So by using the nested public ArraySize class in this manner , you 'll see that even if the compiler makes implicit type conversions for cases like
Array a(10);
the integer 10 is correctly transformed to ArraySize and the constructor having ArraySize as a parameter is called .
The beauty of this last technique is that it works in many cases , cause the compiler is allowed to make 1 implicit type conversion but now two.
Sunday, January 20, 2008
Subscribe to:
Post Comments (Atom)
Labels
. linux
(1)
algorithm
(15)
analytics
(1)
bash
(2)
bigoh
(1)
bruteforce
(1)
c#
(1)
c++
(40)
collections
(1)
commands
(2)
const
(1)
cosine similarity
(1)
creating projects
(1)
daemon
(1)
device_drivers
(1)
eclipse
(6)
eclipse-plugin-development
(9)
equals
(1)
formatting
(1)
freebsd
(1)
game programming
(1)
hashcode
(1)
heap
(1)
heaps
(1)
immutable-objects
(1)
java
(19)
JDT
(1)
kernel
(1)
linux
(4)
little sugar
(23)
logging
(1)
machine learning
(1)
marker-resolution
(1)
markers
(1)
mergesort
(1)
mixins
(1)
numbers
(1)
opengl
(2)
patterns
(2)
priority-queue
(1)
programming
(51)
ps
(1)
ranking
(1)
refactoring
(3)
references
(1)
security
(1)
set
(1)
shell
(1)
similarity
(1)
statistics
(1)
stl
(1)
tetris
(1)
threads
(1)
trees
(2)
unicode
(1)
unix
(2)
views
(2)
windows programming
(2)
XNA
(1)
No comments:
Post a Comment