创建表示简单继承的类层次结构。基类是字符串 (char *)。派生类 - 使用基类数据的方法。在派生类中实现方法以查找和删除基类字符串中的最短单词
我需要在哪里搜索和删除一个单词?我实现了继承,基于基类创建了一个类。我已经初始化了基础和派生。现在我需要在哪里搜索和删除一个单词?在导数中,在导数的变量中,还是在导数中,在基数的变量中?任务说:“在基类的行中”,我是否需要从基类中的派生中搜索和删除,或者这是否意味着我继承了基变量,现在在派生中我必须在导数变量?
#include <iostream>
#include <stdio.h>
#include <cstring>
using namespace std;
class FirstClass {
protected:
char* str_value;
public:
//FirstClass() {}
FirstClass(const char* value = ""):str_value(0) {
set(value);
}
FirstClass(const FirstClass &obj):str_value(0) {
set(obj.str_value);
};
~FirstClass() {delete[] str_value;}
void set(const char* value) {
delete[] str_value;
str_value = new char[strlen(value)+1];
strcpy(str_value, value);
}
const char* get() const {
return str_value;
}
};
class SecondClass : public FirstClass {
public:
SecondClass(const char* str_value = "") : FirstClass (str_value) {}
void findShortestWord()
{
str_value = "kokoko";
}
};
int main() {
FirstClass F_object("aaaaaaaaaa");
printf("\n%s", F_object.get());
F_object.set("bbbbbbbbbb");
printf("\n%s", F_object.get());
FirstClass F_object2 = F_object;
SecondClass S_object();
printf("\n%s", F_object.get());
return 0;
}
现在创建一个方法
而您直接在该领域工作
str_value。但这不是很好。最好把这个字段隐藏
private在基类中,实现最简单的操作,比如索引访问等等。并且已经在派生类中,您可以实现更具体的逻辑,例如查找和删除最短的单词。并且派生类的方法只会使用基类的功能。