c ++中的对象实例化

时间:2014-01-23 18:25:25

标签: c++ object instantiation

在C ++中,如果你实例化一个类的对象,那么每个对象都是如此 对象的所有方法都被复制为新对象吗?

我试图指出一个具有两个不同对象的类的方法,但我遇到了问题 指向成员的指针。

有什么想法吗?

3 个答案:

答案 0 :(得分:7)

  

在C ++中,如果你实例化一个类的对象,那么对于每个对象,都会为新对象复制所有类的方法吗?

不,成员函数通常不会复制到任何地方。相反,对于该类类型的每个对象,将不同的隐式参数this传递给任何非静态成员函数。

答案 1 :(得分:6)

不,这绝对是是真的。

类实例(对象)包含数据成员。函数成员看起来像是在“类”中,但这只适用于作用域等等:您的函数代码在类型中不“存在”,并且它当然不存在于对象


I think it could, theoretically,标准并不完全禁止它。但老实说,没有。只是没有。

答案 2 :(得分:1)

类的代码只存在一次。

要获取指向成员函数的指针(可能是方法的意思),请查看std::function,并将函数调用附加到不同的对象,请查看std::bind