gpt4 book ai didi

c++ - 访问公共(public)继承模板数据成员

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:36:05 25 4
gpt4 key购买 nike

<分区>

我需要澄清为什么我们需要范围解析运算符或 this 指针来访问从模板基类公开继承的成员的问题。据我了解,这是为了增加清晰度,但是 this 除了指出它是该类的成员之外,如何进一步增加清晰度。

为了让我的问题更清楚,我添加了一些代码。

#include <iostream>
using namespace std;

template <class T, class A>
class mypair {
public:
T a, b;
public:
mypair (T first, T second)
{a=first; b=second;}

virtual void printA()
{
cout<<"A"<<a<<endl;
cout<<"B"<<b<<endl;
}
};







template <class T, class A>
class next: mypair<T,A>
{
public:

next (T first, T second) : mypair<T,A>(first, second)
{
}

void printA()
{
cout<<"A:"<<mypair<T,A>::a<<endl; // this->a; also works
cout<<"B:"<<mypair<T,A>::b<<endl; // this-b; also works
}

};


int main () {
next<double,float> newobject(100.25, 75.77);
newobject.printA();
return 0;
}

输出:

A:100.25
B:75.77

如果我删除范围(或此运算符),则会出现超出范围的错误。但为什么我们需要公开继承成员的范围。

对此有一些想法会很棒。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com