【发布时间】:2018-11-23 18:32:07
【问题描述】:
这是抽象类
class number_sort{
public:
int num[1024];
int qww(int a);
public:
bool status;
int number=0;
virtual bool compare(int a, int b);
virtual void sort();
virtual bool test(int a[]);
virtual void setSet(int a[]);
};
这是派生类
class big_to_small:public number_sort{
public: int finish[1024];
void setSet(int a[]){
for(int i=1;i<=1024;i++){
if(a[i]!=0) {
num[i]=a[i];
number++;
}
}
}
bool compare(int a, int b) {
int retur = 0;
if (a >= b) {
retur = a;
status = true;
}
if (b >= a) {
retur = b;
status = false;
}
if (a == b) {
retur = a;
status = true;
}
return status;
}
bool test(int a[]) {
int numm = 0;
bool retur = true;
for (int i = 1; i <= 1024; i++) {
if (a[i] == 0) {
numm = i;
break;
}
}
for (int i = 2; i <= numm; i++) {
if (a[i - 1] < a[i]) {
retur = false;
break;
}
}
return retur;
}
void sort() {
for (int i = 2; i <= number; i++) {
if (!compare(num[i - 1], num[i])) {
int k = num[i - 1];
num[i - 1] = num[i];
num[i] = k;
}
}
if (!test(num))
sort();
}
};
我在单独的 cpp 和 hpp 中编写了抽象类及其派生类。我主要使用 big_to_small bigg 声明该类;但它一直显示构建失败。
很久没用C++了,这几年一直在用java。这是某种声明错误还是我的抽象类写错了?
【问题讨论】:
-
就我个人而言,我觉得风格的选择很难读懂。
-
number_sort的实现在哪里?这是必需的。析构函数也应该是虚拟的。 -
你是否在某处定义了 num 和 qww ?
-
基类是如何抽象的?
-
首选使用
std::vector。传递数组时,需要第一个元素的地址,以及数组的容量。在 C++ 中,数组的容量不作为参数传递。
标签: c++ interface xcode8 abstract-class function-declaration