在函数myfun
中,有没有一种方法可以访问rhs.var
而不编写返回var
的公共函数?此外,据我所知,这是因为rhs
可能是不同的类型...这正确吗?
#include <iostream>
template<class T>
class foo
{
private:
T var;
public:
foo(T v) : var(v) {}
template<class Type>
void myfun(foo<Type>& rhs)
{
auto i = rhs.var; //BOOM
}
};
int main()
{
foo<int> a = 5;
foo<double> b = 2.2;
a.myfun(b);
}
foo
内部,你可以使用template <typename U> friend class foo;
。 - user2249683