- 论坛徽章:
- 0
|
本帖最后由 light511 于 2010-07-29 13:28 编辑
纯虚函数已经实现了,为什么还提示抽象类不能初始化?
error C2259: 'myclass::NewClass' : cannot instantiate abstract class
代码如下
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: MyClass
- {
- public:
- NewClass();
- virtual int func1()=0;
- ~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;
- }
复制代码 mytest.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();
- return 0;
- }
复制代码 |
|