Здравствуйте, enots, Вы писали:
E>E> template <class T >
E> class MyClass {
E> private:
E> T value;
E> public:
E> MyClass(T value_ = T()):value(value_){cout<<"from Constructor value = "<<value<<endl;}
E> template <class X>
E> void assign(const MyClass<X>& x) { // x must have same type as *this
E> value = x.value;
E> }
E> T getValue()const
E> {
E> return value;
E> }
E> };
E>int main( int argc, char ** argv )
E>{
E> MyClass<int> T1, T3;
E> MyClass<double> T2;
добавь в класс
template <class T>
friend class MyClass;
E> T1.assign(T3); //нет ошибки
E> T1.assign(T2); //error C2248: 'MyClass<T>::value' : cannot access private member declared in class 'MyClass<T>'
E> return 0;
E>}
E>
E>кто нибудь может пояснить почему во втором случае ошибка?