c++中抽象类的实现
时间:2010-07-29 来源:light511
1,凡是包含纯虚函数的类都是抽象类;
2,抽象类不能被实例化;
3,可以使用public方式继承抽象类,并且实现抽象类中的所有纯虚函数;
如下代码例子:
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;
}
{
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;
}
相关阅读 更多 +