先上代码:
template<class T>
class myclass
{
private:
T value;
public:
void assign(const myclass<T>& x)
{
value=x.value;
cout<<value<<endl;
}
};
这里value是一个private变量,在assign函数中传递了一个myclass的参数x,并使用了x的value。注意value是一个私有的成员变量,然而这样使用却没有报错。原因是:在myclass中,value对assign是可见的,即value在assign的作用域内,所以作为参数传递过来的x的value对assign也是可见的,所以这样用不会报错。