外部引用初始化

Extern reference initialization

本文关键字:初始化 引用 外部      更新时间:2023-10-16

one.cpp

extern PureVirtualBase &instance;
void foo()
{
    instance.click();
}

两个.cpp

Derived instance;

我可以初始化其他文件中的引用吗?我用那个代码得到conflicting declaration

在cpp文件中:

static Derived instance_object;
PureVirtualBase &instance = instance_object;

这确保了instance的类型完全匹配,即PureVirtual&

实例的定义和声明的类型应该完全匹配。似乎您需要getInstance((类型的函数来执行您要执行的操作:

Base& getInstance() 
{
    return instance;
}