[gtkmm] wrap_new?
- From: "John Burris" <BurrisJ linkline com>
- To: "Gtkmm" <gtkmm-list gnome org>
- Subject: [gtkmm] wrap_new?
- Date: Wed, 7 May 2003 18:14:26 -0700
While working with the new Visual Studio .NET 2003 compiler, I have come
across something I don't understand about the declaration and use of the
static member function wrap_new.
In the file "object_p.h" for class "Object_class" the member function
"wrap_new" is declared "Static Glib::object* wrap_new(Gobject*)" in the
public section of the class. Then later, for example, in the file
"relation_p.h" the same declaration "Static Glib::object*
wrap_new(Gobject*)" exsist in the protected section of the "Relation_Class"
class. However, in the file "wrap_init.cc" a similar declaration for the
same member function is declared as "namespace Atk { class Releation_Class
{ public: Static Glib::object* wrap_new(Gobject*); }; }". Since this now
declares the member function as public instead of protected, the complier
complains about this and later has a link error saying
"Releation_Class::wrap_new" is undefined. This complier complaint and the
link error are easy to fix by moving the original declaration in the file
"relation_p.h" from the protected section to the public section. As apposed
to changing the redeclaration from public to protected in "wrap_init.cc".
Since this will not work because "wrap_init" tries to call
"Glib::wrap_register(ark_relation_get_type(),
&Ark::Releation_Class::wrap_new)" and Glib::wrap_register can't have access
to the protected function "Ark::Releation_Class::wrap_new".
So, my question is, why is there a redeclaration from protected to public
and how is this suppose to work? I don't understand this at all.
John Burris
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]