1. All classes that contain pure virtual functions are abstract classes;
2. abstract classes cannot be instantiated;
3. You can use the public method to inherit the abstract class and implement all pure virtual functions in the abstract class;
Example code:
Myclass. h
Namespace myclass
{
Class MyClass
{
Public:
MyClass (){};
Static int myget ();
Virtual int func1 () = 0;
Virtual int func2 () = 0;
Static void myset (char **);
~ MyClass (){};
};
Class NewClass: public MyClass
{
Public:
NewClass (){};
Virtual int func1 ();
Virtual int func2 ();
~ NewClass (){};
};
}
Myclass. cpp
# Include <iostream>
# Include "myclass. h"
Int myclass: MyClass: myget ()
{
Return 111;
}
Void myclass: MyClass: myset (char ** p)
{
* P = (char *) malloc (10 );
Char * t = "good ";
Strcpy (* p, t );
Return;
}
Int myclass: NewClass: func1 ()
{
Return 1;
}
Int myclass: NewClass: func2 ()
{
Return 2;
}
Test. cpp
# Include <iostream>
# Include "myclass. h"
Using namespace std;
Using namespace myclass;
Int main ()
{
Int x = MyClass: myget ();
Cout <"x =" <x <endl;
Char * p;
MyClass: myset (& p );
Cout <"p =" <p <endl;
Free (p );
NewClass * oneclass = new NewClass ();
MyClass * twoclass = new NewClass ();
Cout <"twoclass-> myget () =" <twoclass-> myget () <endl;
Return 0;
}