我只是好奇了一个类里面函数的效果。让我用下面的例子清楚地说明我的问题。假设我们有两个类ClassA
和ClassB
,它们具有相同数量的属性变量。它们之间的唯一区别是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
的功能,这可以通过ClassA
和ClassB
来实现。然后,我的问题是在ClassA
内有多个函数的效果是什么。它会阻碍它的表现吗?谢谢。
答案 0 :(得分:7)
是的,它会阻碍性能。
不是执行代码的性能,而是必须使用此代码的开发人员的性能。尽量让课程变小,易于理解,仅responsible for a single thing。
答案 1 :(得分:3)
成员函数,如果它们不是虚拟的,则与自由函数相同。它的调用没有开销。所以你应该期望两者之间没有太大区别。对于具有更多功能的类的编译时间可能有一些负担。
ps:如果这不是瓶颈,你应该更多地关注其他部分的优化。 Premature optimization is the root of all evil。或者可能,重新设计这个类以使它变小,如@Wilbert所说。
答案 2 :(得分:1)
应实施代码以满足必要性,同时尊重干净的设计。如果你真的需要200个函数,性能应该不成为问题,最好的做法就是避免让这么多函数只是为了“我可能会在某个时候使用它们”。