C++ 拥有一个类创建者和一个类子级,一个子级怎么能调用创建者函数,而没有对实际创建者的ptr?
因此,我有一个C++ 拥有一个类创建者和一个类子级,一个子级怎么能调用创建者函数,而没有对实际创建者的ptr?,c++,oop,boost,C++,Oop,Boost,因此,我有一个class_实例化器,它在自身内部创建了my_class a的一个实例。a是否可以调用任何class_实例化器方法,而不具有指向class_实例化器的指针,或者只具有可用的接口,是否可以使用任何Boost库 伪代码示例: struct my_class { void call() { try{ call_parent_function(instansiator_function); }catch (exception &e) } }
class_实例化器
,它在自身内部创建了my_class a
的一个实例。a
是否可以调用任何class_实例化器方法,而不具有指向class_实例化器的指针,或者只具有可用的接口,是否可以使用任何Boost库
伪代码示例:
struct my_class
{
void call()
{
try{
call_parent_function(instansiator_function);
}catch (exception &e)
}
};
struct class_instantiator
{
void instansiator_function(){ cout << "Hello!";};
void fun()
{
my_class a;
a.call();
}
};
struct my_类
{
无效调用()
{
试一试{
调用父函数(instansiator函数);
}捕获(例外和e)
}
};
结构类实例化器
{
void instansiator_function(){cout[edan@edantmp]$g++parent.cpp
[edan@edantmp]$./a.out
家长方法!
[edan@edantmp]$cat parent.cpp
#包括
#包括
给我的父母上课{
受保护的:
void parent_method(){std::cout如果你想做循环引用(听起来像什么?),我会说你可能做错了什么。你能给我们一个具体的例子说明你想做什么吗
子类应该能够调用其父类的方法,只要它们不是私有的。您所要求的不是100%清楚,但是要调用一个类的成员函数,您需要该类的实际实例(对象)。但是,如果您的函数(示例中的Me::pf())不需要访问类的非静态成员数据,那么您可以将函数声明为静态并直接调用它。我相应地修改了您的示例。另外,请注意,您有循环引用(Hello需要查看我的定义,反之亦然),所以我稍微重新组织了它
struct Hello
{
void call_static_member();
};
struct Me
{
static void pf(){ std::cout << "Hello!";}
void main()
{
Hello a;
}
};
void Hello::call_static_member()
{
try{
Me::pf();
}catch (exception &e){}
}
struct你好
{
void call_static_member();
};
构造我
{
静态孔隙pf(){std::cout您从哪里派生任何东西?这看起来像两个独立的结构。这里没有父的概念。您只是从另一个结构/类中实例化另一个结构/类。如果您清楚地解释了您实际上要实现的目标,可能会有所帮助。也许我们可以提出一个解决方案。从现在开始(即使使用了伪代码)它也没有什么意义。但是那可能就是我。有<代码>空虚主()/<代码>类成员看起来像某个其他语言。你想用C++编写非C++代码吗?
struct Hello
{
void call_static_member();
};
struct Me
{
static void pf(){ std::cout << "Hello!";}
void main()
{
Hello a;
}
};
void Hello::call_static_member()
{
try{
Me::pf();
}catch (exception &e){}
}