【发布时间】:2011-09-08 15:44:21
【问题描述】:
我只想为客户端公开 CreateSort()。它是为排序类的实现创建一个对象,即 imSort 然后将其返回给客户端。但是编译器说它无法创建抽象类的对象,即使所有函数都已在派生类中定义。
/////sort.h
class __declspec(dllexport) Sort {
public:
virtual int* BSort() const=0;
virtual void getdata() const=0;
};
extern "C" Sort *CreateSort();
/////imSort.h
#include "Sort.h"
class imSort : public Sort{
private:
int i,j,num;
int temp;
int *a;
public:
imSort();
int* BSort();
void getdata();
}
/////imSort.cpp
#include <iostream>
#include "imSort.h"
Sort *CreateSort()
{
return new imSort(); /* object of abstract class type "imSort" is not allowed: */
}
imSort::imSort()
{
i=j=num=0;
*a=0;
}
void imSort::getdata()
{
std::cout<<"\nEnter the number of elements..";
std::cin>>num;
for(i=0;i<num;i++)
{
std::cin>>*a;
*(a++);
}
}
int* imSort::BSort()
{
for(i=0;i<num;i++)
for(j=i+1;j<num;j++)
{
if(*(a+i)<*(a+j))
{
temp=*(a+i);
*(a+i)=*(a+j);
*(a+j)=temp;
}
}
return a;
}
【问题讨论】:
-
这是一个精心设计的笑话,是吗?
-
搞笑,我们必须找到问题和答案
-
欢迎来到 Stack Overflow!你在向a good introductory book学习C++吗?