相关疑难解决方法(0)

C++类成员访问模板的问题

我遇到了一个问题,如果我有一个模板类,它反过来有一个模板方法,它接受该类的另一个实例的参数(具有不同的模板参数),它不能访问传递给该类的受保护或私有成员参数,例如:

template<typename T>class MyClass
{
    T v;
public:
    MyClass(T v):v(v){}

    template<typename T2>void foo(MyClass<T2> obj)
    {
        std::cout << v     << " ";
        //error C2248: 'MyClass<T>::v' : cannot access private member declared in class 'MyClass<T>'
        std::cout << obj.v << " ";
        std::cout << v + obj.v << std::endl;
    }
};
int main()
{
    MyClass<int> x(5);
    MyClass<double> y(12.3);
    x.foo(y);
}
Run Code Online (Sandbox Code Playgroud)

是否有人说MyClass <T>中的方法可以完全访问MyClass <SomeOtherT>?

c++ templates

11
推荐指数
2
解决办法
3392
查看次数

标签 统计

c++ ×1

templates ×1