C ++类中更多函数的影响

时间:2014-01-14 10:02:59

标签: c++

我只是好奇了一个类里面函数的效果。让我用下面的例子清楚地说明我的问题。假设我们有两个类ClassAClassB,它们具有相同数量的属性变量。它们之间的唯一区别是ClassA的功能多于ClassB

class ClassA
{
 public:
   int a;
   float b;
   double c;
   void fun1();
   void fun2();
   bool fun3();
   .....
   double fun200();

};

class ClassB
{
 public:
   int a;
   float b;
   double c;
   void fun1();

};

正如您所看到的,ClassA内的功能多于ClassB。此外,我们假设fun2()... fun200()独立于fun1()

现在,例如,用户想要使用fun1的功能,这可以通过ClassAClassB来实现。然后,我的问题是在ClassA内有多个函数的效果是什么。它会阻碍它的表现吗?谢谢。

3 个答案:

答案 0 :(得分:7)

是的,它会阻碍性能。

不是执行代码的性能,而是必须使用此代码的开发人员的性能。尽量让课程变小,易于理解,仅responsible for a single thing

答案 1 :(得分:3)

成员函数,如果它们不是虚拟的,则与自由函数相同。它的调用没有开销。所以你应该期望两者之间没有太大区别。对于具有更多功能的类的编译时间可能有一些负担。

ps:如果这不是瓶颈,你应该更多地关注其他部分的优化。 Premature optimization is the root of all evil。或者可能,重新设计这个类以使它变小,如@Wilbert所说。

您可能还想查看C++: Performance impact of BIG classes

答案 2 :(得分:1)

应实施代码以满足必要性,同时尊重干净的设计。如果你真的需要200个函数,性能应该成为问题,最好的做法就是避免让这么多函数只是为了“我可能会在某个时候使用它们”。