首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

求释疑,用暗藏还是另写一个方法文件好?还是有其他方法更好

2012-08-10 
求释疑,用隐藏还是另写一个方法文件好?还是有其他方法更好?方法1:class Base{public:void test( int a ){

求释疑,用隐藏还是另写一个方法文件好?还是有其他方法更好?
方法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是必须重载的, 则基类中写成纯虚函数.
如果不是必须重载,可以没有,则可以按你的方法来写.

热点排行