在OOP中,类的方法的真正内部负载是什么
我已经编写了几年的程序,我有一个关于创建对象时方法的内部功能的问题 所以当我们在POO中创建对象时,每个对象都有自己的属性。但事实上,它们都使用相同的方法,那么它在内部是如何工作的呢?方法是否指向C++中的相同地址,在这种情况下,如果我们考虑一类带有方法和属性的色调,那么从该类中创建大量对象的内存“有效载荷”是什么?在OOP中,类的方法的真正内部负载是什么,oop,methods,Oop,Methods,我已经编写了几年的程序,我有一个关于创建对象时方法的内部功能的问题 所以当我们在POO中创建对象时,每个对象都有自己的属性。但事实上,它们都使用相同的方法,那么它在内部是如何工作的呢?方法是否指向C++中的相同地址,在这种情况下,如果我们考虑一类带有方法和属性的色调,那么从该类中创建大量对象的内存“有效载荷”是什么? 换句话说,程序是否复制每个对象的所有方法的地址点,或者是否有任何其他内部功能使它们达到其方法?不同的语言可以以不同的方式实现这一点。在C++的情况下,假设编译器占用类方法并将它们转
换句话说,程序是否复制每个对象的所有方法的地址点,或者是否有任何其他内部功能使它们达到其方法?不同的语言可以以不同的方式实现这一点。在C++的情况下,假设编译器占用类方法并将它们转换为自由函数。对于转换,它添加
此
作为第一个参数
C++
转换为类似于:
struct A
{
// other members
}
void a_f(A* this, bool b);
A a;
a_f(&a, true);
现在我们有了一个
C
程序,没有什么OOP可以混淆。好的,太好了!另一个线索可能是一种只包含方法的单例(一个主类),类似于对所有对象上的主类的引用,但我们接近于您在这里所表达的内容。多谢各位
struct A
{
// other members
}
void a_f(A* this, bool b);
A a;
a_f(&a, true);