如何在 C++ 中编写派生 class 的定义?

How to write the definition of a derived class in c++?

我不知道用模板编写 class 函数定义的语法。

我得到一个错误,这是编译器预期的; , 所以是 无效加; 任何人都知道解决这个问题!

template<class Type 
class basic{
 protected:
    Type x;
 public:
    int value;
    //virtual void  print() =0; 
  basic(Type xArg):x(xArg){}
}; 

template<class Type>
class plus:public basic<Type>{
 public: 
  Type y;
  plus(Type xArg, Type yArg):basic<Type>(xArg),y(yArg){}
  void print(); 

};

//template<class Type> 
void plus<Type>::print(){ 
  cout << "x : " << x << endl;
  cout << "y : " << y << endl;

}

假设我们有一个基数 class:

template<class T> 
class MyBase {
   public:
    T value;

    virtual void print() {
        std::cout << "MyBase.value: " << value;
    }        
    virtual ~MyBase() = default; 
};

我们可以推导它并像这样覆盖print。它不一定是模板,但我在示例中使用了一个模板。

template<class T>
class MyDerived : MyBase<T>
{
   public:
    void print() override {
        std::cout << "MyDerived.value: " << MyBase<T>::value;
    }
};

此外,我喜欢做的事情是用base来表示基数class:

template<class T>
class MyDerived : MyBase<T>
{
   public:
    using base = MyBase<T>; // Use this to indicate the base
    void print() override {
        std::cout << "MyDerived.value: " << base::value << '\n';
    }
};