返回信息流假设有一个抽象基类A,
派生出alpha和beta两个类,这两个类有成员k,其值不一样,函数test()需要调用k的值,
其实可以在alpha里面把test()函数写了,在beta里面把test()函数写了,
但test()函数大部分的代码都是一样的,
想减少代码复用,应该怎么弄呢?
我想把test()函数写在A里面,但是test()函数要调用派生类的k,还不行。大家知道我的意思吧
大体是:
```C
class A
{
//抽象基类
virtual void test() = 0;
};
class alpha
: public A
{
int k_;
public:
virtual void test()
{
cout << k_;
省略一百行一样的东西
}
}
class beta
: public A
{
int k_;
public:
virtual void test()
{
cout << k_;
省略一百行一样的东西
}
}
```
---
为什么代码不高亮?
```JavaScript
var a = "Hello,BYR!";
function helloByr(){
console.log(a);
}
```
这是一条镜像帖。来源:北邮人论坛 / cpp / #99268同步于 2019/8/2
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
非常简单的类设计理念
sharonyue
2019/8/2镜像同步8 回复
订阅后,新回复会通过你的通知中心匿名送达。
8 条回复
没看懂 啥叫其值不一样
类的成员没有值 除非静态成员
只有对象的成员才有值 对象的成员的值不一样不是很正常么
至少你给的示例里 Alhpa和Beta没有区别
【 在 Nroskill 的大作中提到: 】
: 没看懂 啥叫其值不一样
: 类的成员没有值 除非静态成员
: 只有对象的成员才有值 对象的成员的值不一样不是很正常么
: ...................
alpha的k可能是5,beta的k可能是6
类的成员没有值 只有对象的成员才有值
class A
{
};
class B: public A
{
public:
B(const int k):k_(k){}
private:
int k_;
};
B b1(5), b2(6);
【 在 sharonyue 的大作中提到: 】
:
: alpha的k可能是5,beta的k可能是6
【 在 guo1994 的大作中提到: 】
: 重新设计类的数据成员,把可复用的部分涉及到的成员放到A中?
我重写了,确实都放到A中了,但还有另外的问题..