C ++内存中类成员函数的表示

时间:2016-01-21 19:59:42

标签: c++ memory

假设我有以下课程:

class A {
public:
   void func() {
   ...
   }
};

如果我实例化这个类的两个对象,那么内存中是否会复制func()的代码?或者func()只对类的所有对象出现一次?如果没有实例化对象,func()会出现在内存中吗?

1 个答案:

答案 0 :(得分:0)

无论实例数量多少,代码都只有一次。

如果你没有创建该类的任何实例(包括没有指向该类的指针,没有指向该类的智能指针,没有引用该类的lambdas),编译器将优化代码以使该类不是完全存在。