读书人

问C++高手一个有关问题

发布时间: 2013-02-27 10:48:11 作者: rapoo

问C++高手一个问题
比如我有无穷个没有任何关系的类 所有类里面都有一个成员int a
能不能写一个函数,直接任意两个类 返回他们成员a的差
[解决办法]
#define sub(a,b) a.a - b.a
class A
{
public:
int a;
protected:
private:
};
class B
{
public:
int a;
protected:
private:
};
void main()
{
A a;
a.a = 5;
B b;
b.a = 4;
int c = sub(a,b);
getchar();
}
[解决办法]
无穷个没有任何关系的类

说明你没有抽象好,类太多了会爆炸的
[解决办法]
这个类都从一个基类派生,简单就解决了。

class Cbase
{
protected:
int a;
public:
int BackDiff( CBase *pObj)
{
return a - pObj->a;
}
};

// 其他类都 都从这个类派生
class A : public CBase{};
class B: public CBase{};
class C : public CBase{};
.....
class N : public CBase{};

这就行了,既然都有同样一个成员, 那就是共性,怎么能认为没有关系?

读书人网 >C++

热点推荐