Hello,
I was wondering how I could call the base class constructor from a derived
class constructor. In Java I could do something like
super(parameter );
I tried
base(parameter) ;
in C# but it doesn't compile. Any ideas?
Thanks in advance!
--
Jo Vermeulen
Student Computer Science at the tUL
email: jo@lumumba.luc. ac.be
www: http://lumumba.luc.ac.be/jo 7 37704
Jo Vermeulen <jo@lumumba.luc .ac.be> wrote: I was wondering how I could call the base class constructor from a derived class constructor. In Java I could do something like
super(parameter );
I tried
base(parameter) ;
in C# but it doesn't compile. Any ideas?
You do base (parameter) but in a different place:
public Derived() : base (...)
{
}
See http://www.pobox.com/~skeet/csharp/constructors.html for more
information.
--
Jon Skeet - <sk***@pobox.co m> http://www.pobox.com/~skeet
If replying to the group, please do not mail me too
Example :
public class BaseClass
{
public BaseClass(int i, int j)
{
...
}
}
public class DerivedClass : BaseClass
{
public DerivedClass(in t i, int j, int k) : base(i, j) //this is
where you call base constructor
{
...
}
}
"Jo Vermeulen" <jo@lumumba.luc .ac.be> wrote in message
news:pa******** *************** *****@lumumba.l uc.ac.be... Hello,
I was wondering how I could call the base class constructor from a derived class constructor. In Java I could do something like
super(parameter );
I tried
base(parameter) ;
in C# but it doesn't compile. Any ideas?
Thanks in advance!
-- Jo Vermeulen Student Computer Science at the tUL email: jo@lumumba.luc. ac.be www: http://lumumba.luc.ac.be/jo
> > I was wondering how I could call the base class constructor from a
derived class constructor. In Java I could do something like
super(parameter );
I tried
base(parameter) ;
in C# but it doesn't compile. Any ideas?
You do base (parameter) but in a different place:
public Derived() : base (...) { }
See http://www.pobox.com/~skeet/csharp/constructors.html for more information.
I've never understood why this special syntax is used here. Why not do it
like java and allow base(param);?
This would give you the freedom to do parameter processing before calling
the base ctor or you could do a try{}catch around the base()-call in future
versions of c#.
--
cody
Freeware Tools, Games and Humour http://www.deutronium.de.vu || http://www.deutronium.tk
cody <no************ ****@gmx.net> wrote: See http://www.pobox.com/~skeet/csharp/constructors.html for more information.
I've never understood why this special syntax is used here. Why not do it like java and allow base(param);? This would give you the freedom to do parameter processing before calling the base ctor or you could do a try{}catch around the base()-call in future versions of c#.
Just having the Java syntax wouldn't allow that - Java doesn't allow
anything else to happen before the constructor is called either.
For parameter processing, the normal approach is to write a static
method which massages the parameters appropriately, and use
public Foo(int x) : base (Massage(x))
{
....
}
--
Jon Skeet - <sk***@pobox.co m> http://www.pobox.com/~skeet
If replying to the group, please do not mail me too
> > I've never understood why this special syntax is used here. Why not do
it like java and allow base(param);? This would give you the freedom to do parameter processing before
calling the base ctor or you could do a try{}catch around the base()-call in
future versions of c#. Just having the Java syntax wouldn't allow that - Java doesn't allow anything else to happen before the constructor is called either.
I know, but this syntax would allow extensions for C# compilers in future to
do something like:
public GifFile(string s)
{
try
{
base (GetCurrentPath () + s + ".gif");
}
catch (IOException e)
{
base(); // call the empty ctor to create empty GIF which can be
filled dynamically
}
}
Theoretically this would bee possible, MSIL allows executing code before
ctor is called and call to multiple base ctors.
For parameter processing, the normal approach is to write a static method which massages the parameters appropriately, and use
public Foo(int x) : base (Massage(x)) { ... }
Good idea but it requires an additional method.
--
cody
[Freeware, Games and Humor] www.deutronium.de.vu || www.deutronium.tk
cody <pl************ *************@g mx.de> wrote: I know, but this syntax would allow extensions for C# compilers in future to do something like:
public GifFile(string s) { try { base (GetCurrentPath () + s + ".gif"); } catch (IOException e) { base(); // call the empty ctor to create empty GIF which can be filled dynamically } }
Theoretically this would bee possible, MSIL allows executing code before ctor is called and call to multiple base ctors.
It would allow for that syntax, yes - but whether they really want to
be encouraging that is a different matter. For parameter processing, the normal approach is to write a static method which massages the parameters appropriately, and use
public Foo(int x) : base (Massage(x)) { ... }
Good idea but it requires an additional method.
Sure - I was just giving a workaround for the current restrictions in
some cases.
--
Jon Skeet - <sk***@pobox.co m> http://www.pobox.com/~skeet
If replying to the group, please do not mail me too This thread has been closed and replies have been disabled. Please start a new discussion. Similar topics |
by: st_ev_fe |
last post by:
I've noticed that when constructing a subclass, the base class get's
it's contructors called.
Is there some way to avoid this? The base class has one variable, which
gets initialised to 0.
The subclass's constructor sets this variable to a real value.
So first the variable is set to 0, the variable is never used before it
once again gets set to a real value. It's a waste. Any ideas anyone?
|
by: BDB |
last post by:
Hi,
I'm trying to call a base class' constructor. This is giving me an error:
Use of keyword 'base' is not valid in this context.
....
public class B : A
{
B( int i )
|
by: Jeff |
last post by:
The derived class below passes a reference to an object in its own
class to its base calss constructor. The code compiles and will run
successfully as long as the base class constructor does not attempt to
access the object -- since m_object is not actually created and
initizialized until after the base constructor has been called.
Any thoughts on the practice below?
class Base
{
public:
|
by: Fedor Semenov |
last post by:
How can I call a base class' constructor from a derived class. Suppose I
have:
class Button // Base class
{
public:
Button(void)
{
// Register classes, create the button, etc.
}
};
|
by: ali |
last post by:
Hi,
I am new to C++ and trying to understand how to work on Inheritance
and Operator overloading. I understand that the derived class can pass
the base class constructor in its constructor definition as following
code:
Car::Car(int id, int colorID, int type):Vehicle(id, colorID)
{
this->type = type;
| |
by: Richard Coltrane |
last post by:
Hi there,
In vb.net, if i inherit from a class then the first i generally do in a sub
classes contructor is MyBase.New(..);
Whats the pattern in C#? It seems to do these things automatically; I didn't
think C# did "anything" automatically?
Thanks
Richard
|
by: desktop |
last post by:
I am reading a text that says:
"The derived-class constructor initializer names its base-class followed
by a (possibly empty) list of arguments. These arguments are the initial
values to use in constructing the base-class part; the serve to select
the base-class constructor to run in order to initialize the base".
I have then made this example:
#include <string>
|
by: Rahul |
last post by:
Hi Everyone,
While working with Java, i came across super() which passes values to
base class constructor from derived class constructor. I was wondering
if this could be implemented in c++ by any mechanism as super is not
supported by c++, atleast by MS vc++ 6.0.
|
by: marktang |
last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look !
Part I. Meaning of...
|
by: Oralloy |
last post by:
Hello folks,
I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>".
The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed.
This is as boiled down as I can make it.
Here is my compilation command:
g++-12 -std=c++20 -Wnarrowing bit_field.cpp
Here is the code in...
|
by: Hystou |
last post by:
Overview:
Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
| |
by: tracyyun |
last post by:
Dear forum friends,
With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
|
by: isladogs |
last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM).
In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules.
He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms.
Adolph will...
|
by: conductexam |
last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one.
At the time of converting from word file to html my equations which are in the word document file was convert into image.
Globals.ThisAddIn.Application.ActiveDocument.Select();...
|
by: adsilva |
last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
|
by: muto222 |
last post by:
How can i add a mobile payment intergratation into php mysql website.
|
by: bsmnconsultancy |
last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...
| |