Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > C++ > function calls

Reply
Thread Tools

function calls

 
 
Paul
Guest
Posts: n/a
 
      03-01-2011

"Leigh Johnston" <> wrote in message
news:V_SdnTIe-...
> On 01/03/2011 00:17, Paul wrote:
>>
>> "Leigh Johnston" <> wrote in message
>> news: ...
>>> On 28/02/2011 23:54, Paul wrote:
>>>>
>>>> "Öö Tiib" <> wrote in message
>>>> news:fd3e7076-47da-40f3-aa05-...
>>>>
>>>> On Feb 28, 9:45 pm, "Paul" <pchris...@yahoo.co.uk> wrote:
>>>>> " Tiib" <oot...@hot.ee> wrote in message
>>>>>
>>>>> news:7e2e42b3-2410-443a-95c2-...
>>>>>
>>>>> On Feb 25, 11:07 am, "Paul" <pchris...@yahoo.co.uk> wrote:
>>>>>
>>>>>
>>>>>
>>>>> > Please let me know if you still do not understand and I will >
>>>>> re-explain
>>>>> > again.
>>>>>
>>>>> --Your code does not work. You can not overwrite object 'Dog dog;' in
>>>>> a
>>>>> --way that Cat's destructor is called for it when that dog leaves
>>>>> --scope ... Dog's destructor is called for it on all C++ compilers i
>>>>> --could reach. What destructor will be called is pre-decided and set
>>>>> --already compile time. So it seems that you do not understand
>>>>> yourself
>>>>> --what you are talking about.
>>>>>
>>>>> #include <iostream>
>>>>> class Animal{};
>>>>> class Dog: public Animal{};
>>>>> class Cat: public Animal{};
>>>>>
>>>>> int main()
>>>>> {
>>>>> Cat* p_cat = new Cat;
>>>>> std::cout<< p_cat << std::endl;
>>>>> delete p_cat;
>>>>> Dog* p_dog = reinterpret_cast<Dog*>(p_cat);
>>>>> p_dog = new Dog;
>>>>> std::cout << p_dog;
>>>>>
>>>>>
>>>>>
>>>>> }
>>>>
>>>> --What does this code overwrite?
>>>> --Also ... most compilers optimize the two lines:
>>>>
>>>> --Dog* p_dog = reinterpret_cast<Dog*>(p_cat);
>>>> --p_dog = new Dog;
>>>>
>>>> --Into something like:
>>>>
>>>> -- Dog* p_dog = new Dog;
>>>>
>>>> It doesn't trully overwrite anything but its the closet example I can
>>>> give, using C++ code.
>>>>
>>>> Here is some code that demonstrates a similar thing:
>>>>
>>>> #include <iostream>
>>>> class Animal{public:
>>>> virtual void eat(){std::cout<< "Animal Eating"<< std::endl;}
>>>> virtual int getID()=0;
>>>> static int count;
>>>> };
>>>> class Dog: public Animal{
>>>> public:
>>>> void eat(){std::cout<< "Dog Eating"<< std::endl;}
>>>> int getID(){return 1;}
>>>> };
>>>> class Cat: public Animal{
>>>> public:
>>>> void eat(){std::cout<< "Cat Eating"<< std::endl;}
>>>> int getID(){return 0;}
>>>> };
>>>> int Animal::count =10;
>>>>
>>>> Dog* overwriteCat(Animal* ptr){
>>>> delete ptr;
>>>> Dog* p = reinterpret_cast<Dog*>(ptr);
>>>> p = new Dog;
>>>> return p;
>>>> }
>>>>
>>>> Cat* overwriteDog(Animal* ptr){
>>>> delete ptr;
>>>> Cat* p = reinterpret_cast<Cat*>(ptr);
>>>> p = new Cat;
>>>> return p;
>>>> }
>>>>
>>>>
>>>> void ordinary_function(Animal* obj){
>>>> Animal::count--;
>>>> std::cout<<"Address of obj: " <<obj << " ";
>>>> obj->eat();
>>>> if(obj->getID()){overwriteDog(obj);}
>>>> else {overwriteCat(obj);}
>>>> if(Animal::count){
>>>> ordinary_function(obj);
>>>> }
>>>> }
>>>>
>>>> int main()
>>>> {
>>>> Cat* p_cat = new Cat;
>>>> Animal* p_anim = p_cat;
>>>>
>>>> ordinary_function(p_cat);
>>>> }
>>>>
>>>>
>>>> You cannot do this type of recursion with a member function, a member
>>>> function belongs to the object with which its called.
>>>>
>>>
>>> In C++ a member function does not belong to a particular object; in
>>> C++ a non-static member function is invoked on an object; in C++ a
>>> member function is a member of a class not an object.
>>>

>>
>> If its a member of the class its also a member of the object you
>> f*#"&i%$ moron.
>> If its a member of a class and not a member of an object it can only be
>> a static class member.
>>
>> Please keep your ignorant, negative , spamming comments to yourself if
>> you have no reasoning to support your argument.

>
> You have been reasoned with many times by many people; you prefer to
> ignore reason; your behaviour is childish at best.
>

Shut up idiot and keep your **** out of my threads.

 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
This function has an onClick event that calls a function that calls This function Bob Javascript 5 10-24-2006 04:11 PM
ods calls business object then method calls ta with output params andy6 ASP .Net 2 06-09-2006 01:54 AM
How override ALL function calls? (Is there a "function call function"?) seberino@spawar.navy.mil Python 2 08-01-2005 12:38 PM
MoVoIP - FREE MOBILE Inetrnet Phone Calls - FREE Internet Phone Calls ubifone VOIP 0 07-29-2005 04:31 PM
Sequence of constructor calls and destructor calls. Honne Gowda A C++ 2 10-31-2003 09:31 AM



Advertisments
 



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57