Should you employ this pointer in the constructor?, C/C++ Programming

Assignment Help:

Should you employ this pointer in the constructor?


Related Discussions:- Should you employ this pointer in the constructor?

How to use turbo c, Sir i want to know all the basic knowledge of turbo c.

Sir i want to know all the basic knowledge of turbo c.

Define classes and objects, Classes and Objects A class is a vehicle to...

Classes and Objects A class is a vehicle to execute the OOP features in the C++ language. Once a class is declared, an object of that type can be explained. An object is said t

Hep, I need help with a c# program. Do yall help with c sharp

I need help with a c# program. Do yall help with c sharp

Define memory alignment??, Primarily the term alignment refers the tendency...

Primarily the term alignment refers the tendency of an address pointer value to be a multiple of some power of two. Thus a pointer with two byte alignment contains a zero in the le

Example of array, In this lab, please complete a given program to perform t...

In this lab, please complete a given program to perform the following tasks: 1. Allocate a 10 by 5 2D byte array dynamically. The way of allocation must be consistent with pag

Give example of the for loop, The for Loop For loop is the controlled f...

The for Loop For loop is the controlled form of loop. The general format of this : for( initialize ; test ; update)                  {                     statements;

Define the keywords of c language, Define the Keywords of c language? C...

Define the Keywords of c language? C keeps a small set of keywords for its personal use. These keywords can't be used as identifiers in the program. Here is the list of keyword

Oop, write a program which has three classes

write a program which has three classes

Write program.., # Dear I want help to programmer that write C++ code for...

# Dear I want help to programmer that write C++ code for my small project as soon as posible If we can help me?..

Asset pricing project, In the final project assignment you are asked to dev...

In the final project assignment you are asked to develop an OOP C++ class hierarchy for derivative pricing, using the binomial tree and Black-Scholes option pricing methods. You wi

3/15/2013 6:02:15 AM

A: Some of people feel you must not use the pointer in a constructor since the object is not fully formed yet. Though, you can use this in the constructor (in the {body} and even in the initialization list) if you are careful.

Here is something which always works: the {body} of a constructor (or a function called from the constructor) can access reliably the data members declared in a base class and/or the data members declared in the constructor''s own class. It is because all of those data members are guaranteed to have been completely constructed by the time the constructor''s {body} starts executing.

Here is something which never works: the {body} of a constructor (or a function called from the constructor) can''t get down to a derived class via calling a virtual member function i.e. overridden in the derived class. If your aim was to obtain to the overridden function in the derived class, you won''t obtain what you wish. Note down that you won''t get to the override in the derived class independent of how you call virtual member function: explicitly via the this pointer (for example this->method()), implicitly using this pointer (for example method()), or even calling some other function which calls the virtual member function onto your this object. The bottom line is this: even if the caller is building an object of a derived class, throughout the constructor of the base class, your object is not still of that derived class.

Here is something which sometimes works: if you pass any data members in this object to another data member''s initialize, you have to ensure that the other data member has already been initialized. You can determine whether the other data member has (or has not) been initialized by using some straightforward language rules which are independent of the particular compiler you''re utilizing. The bad news is that you ought to know those language rules (for example: base class sub-objects are initialized first (look up the order if you have multiple and/or virtual inheritance!), then data members described in the class are initialized in the order wherein they appear in the class declaration). If you don''t know about these rules, then don''t pass any data member from the object (regardless of whether or not you use explicitly this keyword) to any other data member''s initializer! And if you do know about the rules, be careful please.

 

Write Your Message!

Captcha
Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd