C++中如何调用基class方法?
How to call the base class method in C++?
我正在开发 C++ 程序。对于其中一个用例,我有一个 class 派生自它的模板 class。所以,我想知道我们如何在派生的 class 方法中调用基 class 方法?
示例:
template <typename base>
struct derived : public base
{
void aFunction()
{
// need to call a base function() here
}
};
其中一种方法可能类似于 base::aBaseFunction()
,但我不确定?
我是 OOP 编程的新手,所以期待通过这个问题陈述学习一个新概念。
如果您想显式使用基的成员,请像您发现的那样显式设置类型:
template <typename base>
struct derived : public base
{
void aFunction()
{
base::function();
}
};
如果您更希望有通常的 unqualified-lookup 行为,请改为 this
显式:
template <typename base>
struct derived : public base
{
void aFunction()
{
this->function();
}
};
两者的行为与在 non-templates 中的行为完全相同。
我正在开发 C++ 程序。对于其中一个用例,我有一个 class 派生自它的模板 class。所以,我想知道我们如何在派生的 class 方法中调用基 class 方法?
示例:
template <typename base>
struct derived : public base
{
void aFunction()
{
// need to call a base function() here
}
};
其中一种方法可能类似于 base::aBaseFunction()
,但我不确定?
我是 OOP 编程的新手,所以期待通过这个问题陈述学习一个新概念。
如果您想显式使用基的成员,请像您发现的那样显式设置类型:
template <typename base>
struct derived : public base
{
void aFunction()
{
base::function();
}
};
如果您更希望有通常的 unqualified-lookup 行为,请改为 this
显式:
template <typename base>
struct derived : public base
{
void aFunction()
{
this->function();
}
};
两者的行为与在 non-templates 中的行为完全相同。