Class to disable copy and assign constructor

1647 ワード

In the HPP file:
#include <stdio.h>

#include <string.h>



class ParentFirst

{

public:

    ParentFirst()

    {



    }



    ParentFirst(const char * pName, const int pAge)

    {

        strcpy(this->name, pName);

        this->age = pAge;

    }



    ~ParentFirst() {}



    virtual void Show()

    {

        printf("print in parent First 
"); } private: ParentFirst(const ParentFirst& disabled_Arg); ParentFirst& operator=( const ParentFirst& rhs ); char name[20]; int age; }; template<typename T1, typename T2> class MyClass : public ParentFirst { public: MyClass(T1 t1, T2 t2); void Show(); private: T1 t1; T2 t2; };

  In the CPP file
#include <stdio.h>

#include "templ.hpp"



struct TestStruct

{

    int i;

};



template<typename T> double Add(T x, int y)

{

    return x + y;

}



template<typename T1, typename T2>

MyClass<T1, T2> :: MyClass(T1 t1_Arg, T2 t2_Arg) : ParentFirst()

{

    t1 = t1_Arg;

    t2 = t2_Arg;

}



template<typename T1, typename T2>

void MyClass<T1, T2> :: Show()

{

    printf("MyClass show is comming %d 
", t1 + t2); ParentFirst::Show(); } int main() { // double r = Add(10, 5); //printf("result is %f
", r); MyClass<int, int> my(10, 10); my.Show(); const int j = 939; const int * k; k = const_cast<int*>(&j); printf("*k is %d
", *k); return 0; }