c++ - C++ 对象如何保存有关其成员函数的信息

标签 c++ oop object member-functions

class A {
       public :
       void printSometext() {
       std::cout << "printing A" << std::endl;
       }
    };
class B {
       public : 
       void printSometext() {
       std::cout << "printing B" << std::endl;
       }
    };

int main() {
   A* a = new A();
   a->printSometext();
   return 0;
}

C++ 对象如何保存有关其成员函数的信息。让我们考虑上面的代码。当我在对象“a”上调用 printSometext 时,它如何知道要调用什么函数以及如何找到正确的方法。 当打印对象的大小时,它会打印其成员变量 (+allignments) 的总和大小。所以请提供一些内部信息,成员函数调用是如何发生的。

谢谢, 得摩斯

最佳答案

您错误地理解了 C++ 编程的基础知识。 a 在运行时不知道 printSomeText,是编译器和链接器将上述代码转换为执行这些任务的二进制代码。在运行时,只有一堆指令。

关于c++ - C++ 对象如何保存有关其成员函数的信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5374850/

相关文章:

c++ - 将 vector 的内容复制到文件中

c++ - 查找未通过 4 和问题代码的测试用例

javascript - 如何使用扩展语法 es6 进行简化

javascript - 将所有对象一次调用到函数中,并返回每个对象的特定计算?

c++ - 将不同的对象传递给一个函数

c# - 带有字形信息的字体渲染

c# - OpenGL 不同时渲染无纹理和纹理形状

oop - 您如何向非程序员解释接口(interface)和抽象类之间的区别?

excel - 消费/订阅类模块的自定义事件

c++ - 当我们在 C++ 中有关键字 "auto"时,为什么需要多态性