温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

C++中怎么存储属性和方法

发布时间:2021-07-07 14:27:47 来源:亿速云 阅读:147 作者:Leah 栏目:大数据

今天就跟大家聊聊有关C++中怎么存储属性和方法,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

  • 内容介绍:

在C++中对于一个Class,它内部的数据和方法到底是如何存储的呢?是将数据和方法都存储到Class的单个对象中呢,还是会将数据和方法分开来存储?如下图所示:

C++中怎么存储属性和方法

答案是图2,每个对象占用存储空间的只是该对象的数据部分(虚函数指针和虚基类指针也属于数据部分),函数代码属于公用部分,所以在Class的存储中,将数据部分与对象关联,函数部分则是存储在一个公共的地方。

  • 代码实例:

#include <iostream>using namespace std;
class Node {public:    int age;    string name;    void  print();};void Node::print() {    cout<<"print &name:"<<&name<<" name:"<<name<<" &age:"<<&age<<" age:"<<age<<endl;    cout<<"&print():"<<(void*)(&Node::print)<<endl;}int main() {  Node n;  n.name = "Davis";  n.age = 19;  n.print();
 Node n1;  n1.name = "Jack";  n1.age = 18;  n1.print();    return 0;}

输出结果:

C++中怎么存储属性和方法

结果分析:

     通过输出我们可以看出,Node的两个对象n和n1中存储的数据name、age地址是不相同的,但是它们的公共函数print()的地址是相同的。


看完上述内容,你们对C++中怎么存储属性和方法有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

c++
AI