Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/129.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 对象实现后大部分不相关对象的动态绑定_C++_Polymorphism - Fatal编程技术网

C++ 对象实现后大部分不相关对象的动态绑定

C++ 对象实现后大部分不相关对象的动态绑定,c++,polymorphism,C++,Polymorphism,我有3个对象,我想动态绑定并使用它们共享的一组特定函数。我知道我可以用虚函数创建一个父类,并让这些对象从中派生出来,但是有没有办法不这样做就获得同样的效果呢 编辑: 我说的是3个不同的类,它们有两个函数,我想在创建一个后使用它们(取决于用户输入)。但我不想以任何方式编辑这些原始类。我不完全理解您所说的“动态绑定”、“无关对象”和“共享函数”是什么意思(如果您解释这些要点,您将得到更清楚的答案)。 但是,如果你谈论的是三个对象(不是类),它们有一些共同的数据和一组相同的函数来管理它们,那么考虑数据

我有3个对象,我想动态绑定并使用它们共享的一组特定函数。我知道我可以用虚函数创建一个父类,并让这些对象从中派生出来,但是有没有办法不这样做就获得同样的效果呢

编辑:
我说的是3个不同的类,它们有两个函数,我想在创建一个后使用它们(取决于用户输入)。但我不想以任何方式编辑这些原始类。

我不完全理解您所说的“动态绑定”、“无关对象”和“共享函数”是什么意思(如果您解释这些要点,您将得到更清楚的答案)。 但是,如果你谈论的是三个对象(不是类),它们有一些共同的数据和一组相同的函数来管理它们,那么考虑数据的静态字段。 编辑:静态数据示例

#包括
使用名称空间std;
类CommonDataForObjects
{
私人:
int id;//对象的个人数据
static int maxID;//所有对象的通用数据
static int activeID;//也是所有对象的通用数据
公众:
CommonDataForObjects()
{
//创建对象时生成新id
maxID++;
id=maxID;
}
int setAsActive()
{
//还记得prevoius active的id吗
int-prevID=activeID;
//将活动id更改为调用此方法的对象的id
activeID=id;
//返回上一个活动对象的id
返回prevID;
}
};
int CommonDataForObjects::maxID=0;
int CommonDataForObjects::activeID=0;
int main()
{
对象obj1的公共数据;
对象obj2的公共数据;
CommonDataForObjects obj3;
//测试
库特