Need a bit of an explanation

Here's a class declaration. I spent too much time learning UnrealScript that I'm having a brain fart. This is declaring WavPlayerEditor which is derived from AEffGUIEditor and CControlListener.... correct?

1
2
3
4
5
6
7
class WavPlayerEditor : public AEffGUIEditor, public CControlListener
{
public:
	// I'm assuming this is the constructor declaration
	WavPlayerEditor (AudioEffect *effect);
	
};



Here's the WavPlayerEditor constructor definition. I omitted the junk within the constructor, not important for my question.

1
2
3
4
WavPlayerEditor::WavPlayerEditor (AudioEffect* effect):AEffGUIEditor(effect)
{
	// Do something
}


Can someone explain to me what this line is saying?

WavPlayerEditor::WavPlayerEditor (AudioEffect* effect):AEffGUIEditor(effect)
Wait whats public AEffGUIEditor, public CControlListener
do?
-----------------------------------------
It looks like its stating that that function is part of a class, and that its code applies to two functions.

But I'm not sure.
Last edited on
I wish I could tell you. They're part of the VST 2.4 SDK. The documentation isn't the most user friendly.
AEffGUIEditor is the class used for creating a custom GUI and CControlListener is a class that makes sure the VST plugin is listening to the GUI.

Those are crude descriptions and possibly incorrect. I should have pointed out that I'm more interested in a syntax explaination.
Oh, ok

Well:
WavPlayerEditor::WavePlayerEditor (AudioEffect* effect) WavPlayerEditor Class
::WavePlayerEditor Function which is a member of the class WavePlayerEditor - (that constructor function and class have the same name)
(AudioEffect* effect) Arguments

The :: States that the function is a member of that class as far as I know.

I saw the : style thing once but I forgot what it meant.
Last edited on
I understand the first part of the member function definition but I have no idea what :AEffGUIEditor(effect) is telling me.
I think its a function that is executed at the same time and then effect can be used in WavePlayerEditor(blah);

or something like that.
This is declaring WavPlayerEditor which is derived from AEffGUIEditor and CControlListener.... correct?


Yes

Can someone explain to me what this line is saying?

WavPlayerEditor::WavPlayerEditor (AudioEffect* effect):AEffGUIEditor(effect)


Is it calling a specific constructor for AEffGUIEditor base class ?

I'm using MSVC++ so I was able to search for AEffGUIEditor and apparently AEffGUIEditor(effect) is a constructor for AEffGUIEditor class.

I still don't understand. So in the WavPlayerEditor constructor definition it's calling a different class' constructor.

hmmm... So is this because the WavPlayerEditor class needs AEffGUIEditor class to be .... ummm instantiated... hahaha... I have no idea what I'm saying.

Last edited on
It's possible to call a specific base class constructor when implementing the derived class constructor, because the derived constructor might need to initialise something in the base class before proceeding.

The base class might have several constructors, so you need to be able to call the appropriate one to do the initialisation for the particular derived class constructor. A derived class will always cause a base class constructor to be called, This feature of C++ allows you to call a particular base class constructor.

HTH
Topic archived. No new replies allowed.