关于C++的有关问题,类对象不能访问类私有数据成员

关于C++的问题,类对象不能访问类私有数据成员
昨天看书的时候有个地方突然怎么想也想不明白,代码如下
template <class T>
class MyClass{
private:
T value;
public:
void assign(const MyClass<T>& x){
value=x.value;
}
......
};

问题:个人觉得x为MyClass<T>的对象,但是对象并不能访问类的私有成员的,但是书上却说x.value这样写没有错,我很困惑,为什么,请高手指点,我刚学C++不久。
书上是这么解释的,因为x的类型与*this的类型相同,我觉得没有办法理解
------解决方案--------------------
一句话:private类成员不能在类以外直接访问。
------解决方案--------------------
对象并不能访问类的私有成员。这说的是外部:
比如MyClass<int> my;
my.value就是在外部访问。
但你这种是在内部。如果说你这种都不能访问,那拷贝构造函数不就有问题了。
------解决方案--------------------
私有是对于不同类型而言的,而不是对于具体某个实例而言的

------解决方案--------------------
"类对象不能访问类私有数据成员"

说的是:
MyClass<T> my_class;
my_class.value = xxx; // error
------解决方案--------------------
那句话应该是 不能在类外部访问类的私有成员的
------解决方案--------------------
木有问题吧,私有成员只是不能在类的外部访问它而已。