编辑代码

#include <iostream>
using namespace std;

template<typename T>
class MyClass{
private:
    T value;
public:
    MyClass(T value):value(value){}
    template<typename X>
    void assign(const MyClass<X>& x){
        //value =x.value;   //注意类模板产生的模板类对象属于不同的类产生的对象,因此该语句会出现,
                            // error: ‘int MyClass::value’ is private within this context
        value=x.getValue();
    }
    T getValue()const{
        return value;
    }
};

int main(){
    
    MyClass<double> dObject(0);
    cout<<dObject.getValue()<<endl;

    MyClass<int> iObject(1);
    cout<<iObject.getValue()<<endl;

    dObject.assign(iObject);
    cout<<dObject.getValue()<<endl;
}