b***i 发帖数: 3043 | 1 有这样一个类,定义
MyClass.h
class MyClass{
public:
bool IsGood();
};
MyClass.cpp没有实现,而是在内容都很类似的多个项目中分别实现
MyProj1.cpp, MyProj2.cpp等,分别编译成exe文件。要求1-9里面IsGood()返回false,
但是我不想每个都改,想集中实现。每个项目都知道自己的名字后缀(1,2,...)
其中MyProj10里面要定义
MyClass::IsGood(){
return true;
}
而MyProj1里面
MyClass::IsGood(){
return false;
}
是可以的,从10开始我要重写IsGood的内容,会比较复杂。而之前的要默认false。但
是我觉得这样麻烦,不想改1-9,那怎么做呢?假设已经很多类了,不太想继承。当然
继承可以做。
一个想法:
if (suffix > 9)
return IsGood();//此时项目是>9的,有这个函数
else
return false;//对于<10的项目,IsGood()没有定义,可以编译吗?
这样, | s*****V 发帖数: 21731 | 2 不懂,你这些class 难道共享 header file? | l*********o 发帖数: 3091 | 3 典型的abstract class用做interface。
【在 b***i 的大作中提到】 : 有这样一个类,定义 : MyClass.h : class MyClass{ : public: : bool IsGood(); : }; : MyClass.cpp没有实现,而是在内容都很类似的多个项目中分别实现 : MyProj1.cpp, MyProj2.cpp等,分别编译成exe文件。要求1-9里面IsGood()返回false, : 但是我不想每个都改,想集中实现。每个项目都知道自己的名字后缀(1,2,...) : 其中MyProj10里面要定义
| g****y 发帖数: 2810 | 4 对呀,继承不就行了吗,再写一个factory
【在 l*********o 的大作中提到】 : 典型的abstract class用做interface。
|
|