读书人

求释疑,用暗藏还是另写一个方法文件好

发布时间: 2012-08-10 12:19:33 作者: rapoo

求释疑,用隐藏还是另写一个方法文件好?还是有其他方法更好?
方法1:
class Base
{
public:
void test( int a ){ cout << a << endl; }
}

class Der1 : public Base
{}

class Der2 : public Base
{}

int main()
{
Der1 *pD1 = new Der1();
assert( Pd2 != NULL );
Der2 *pD2 = new Der2();
assert( pD1 != NULL )
pD1->test( 10 );
pD2->test( 20 );
delete pD1;
delete pD2;
return 0;
}

方法2:
test()不放在父类,直接另外写一个Cpp
class Base
{
public:
}
============================
test.h
void test( int a ){ cout << a << endl; }

==========
der1.h
#include "test.h"
class Der1 : public Base
{
public:
void test( int a ){ test( a ); }
}
============
der2.h
#include "test.h"
class Der2 : public Base
{
public:
void test( int a ){ test( a ); }
}

int main()
{
Der1 *pD1 = new Der1();
assert( Pd2 != NULL );
Der2 *pD2 = new Der2();
assert( pD1 != NULL )
pD1->test( 10 );
pD2->test( 20 );
delete pD1;
delete pD2;
return 0;
}

大概是这样,继承我是必须用到的,因为还有些数据我必须要继承,这样写,我是为了省写多次test()的代码,不用每个子类都实现一次,求更好方法~万分感谢!!

[解决办法]
如果test是必须重载的, 则基类中写成纯虚函数.
如果不是必须重载,可以没有,则可以按你的方法来写.

读书人网 >C++

热点推荐