c++ - What does "ClassName objName; objName(1);" mean? -
i have code:
classname objname; objname(1);
how should understand it? first line create object (called objname
, belonging classname
class) using constructor not take arguments? , second line calls constructor takes 1 integer arguments? so, means that, in fact, on second line destroy old object , create new one?
the first line say; creates object of type classname
, calls objname
. constructed default constructor (which takes no arguments).
the second line calling overloaded operator()
class. allows called function. argument 1
being passed overloaded operator.
here's example:
struct foo { operator()(int x) { std::cout << x * 2 << std::endl; } };
this foo
type overloading operator()
takes int
. prints out value of passed int
multiplied two. here's example of use:
foo f; f(5); // prints out 10
Comments
Post a Comment