0
Is functions also have different copies for different objects of same class?
I mean is function take different memory for different objects of same class or function made only once and independent of creating object
16 odpowiedzi
+ 1
Prateek Chaturvedi it's compiler who does this for us... as soon as you create a function, function pointer is created by compiler while we build the code... for all other call to function in main file, function pointer is mapped and body of the function gets executed....
all member object calls same function through function pointer... body of function going to be executed is also same... but if you take values associated with object in member function, it will be different..
Feel free to ask if you have further doubt
+ 1
thanks ketan lalcheta
0
function does not take memory... data member are culprit for memory once object are created...
And static data member are common for all class objects
0
please further elaborate this.like then how these member function able to access different objects if they made only.once
0
it means there is different functions pointer for different objects
0
no ..it's same...it is maintained by one per class... object numbers do not decide no of pointers for one function
0
means different for different functions but one per class
0
yes, one pointer for one function in a class...if you create a same function in other class, it's different pointer for that particular function in different class
0
OK ! but plz clear one point only that how then function got to know which object calls that function . So that it can use the data member of that function
0
with this , go with polymorphism study article... it is a good concept and whatever we have discussed will be used as base knowledge.. If you still have doubt on this discussion, I am willing to discuss...
0
here is a link to study internal mechanism of polymorphism, which may help to understand function call in normal scenario:
https://stackoverflow.com/questions/2171081/how-c-implements-the-polymorphism-internally
0
it's this pointer... compiler pases it as internal argument to function...you can access object calling function with this pointer in function itself
0
let me put one code for this pointer and share here in some time
0
wait now let me tell you what I understand.
when we create function,
function pointer is created which gets binded with function call and when this call occurs
this pointer gets passed which tell which object data to use to function.
plz correct me if I am wrong
0
just to make clear one point...
this pointer points to object calling that function.. It's internal pointer available in function call when call happens from object...this facilitates data access of different objects in same function...
what is function pointer... it's not this pointer... it is again a internal pointer that points to definition of function body... it's is not visible to us as a end programmer.. that mechanism is what compiler uses...
EDIT : function pointer points to function body and not visible to us.. this pointer points to calling object and visible to by by this name