关注C++细节——抽象的理解
来源:互联网 发布:网络侵权案例 编辑:程序博客网 时间:2024/06/04 19:31
#include <iostream>using namespace std; class A{public: void a(){ cout << "func_a" << endl; }}; int main(){ A * p = NULL; p -> a(); return 0;}
该程序输出func_a,试分析其背后的原理
这主要涉及的是C++的内存模型问题,其实就是C++的抽象机制
C++对象虽然封装了成员函数、成员变量(属性),但成员函数和成员变量的处理方法是完全不同的,成员函数是整个类公有的,而成员数据才是一个对象真正私有的。只需要一个表示该类型的指针就可以直接访问public成员函数,不管该指针是否是野指针。而成员数据必须是一个有效的地址才可以访问。因为对每个对象建立一个一模一样的函数是完全没必要的,而每个对象的数据才会是不同的。
本人新的博客地址 凌风技术站
4 0
- 关注C++细节——抽象的理解
- 关注C++细节——strcpy
- 程序员应知——关注细节
- 关注C++细节——产生随机数
- 程序员应知——关注细节
- 关注C++细节——动态生成对象初始化细节
- 关注C++细节——变参数函数的参数获取问题
- 关注C++细节——C++11新标准之decltype的使用注意
- 经典测试实践分享——以太网交换机性能测试需要关注的细节
- 关注C++细节——使用内置算术类型
- 关注C++细节——写头文件注意
- 关注C++细节——标准库string类型
- 关注C++细节——浅谈指针使用中注意事项
- 关注C++细节——static类成员使用注意
- 关注C++细节——标准IO库
- 关注C++细节——类中的几个特殊函数
- 关注C++细节——STL中map学习小结
- 关注C++细节——STL中map学习小结
- CentOS6.5(64b) JDK1.7环境搭建篇
- 使用Webstorm to develope cocos2dx js-binding/html 項目
- 到底什么是MVC?
- Codeforces Round #226 (Div. 2) <A-C E>
- 读书笔记-并发
- 关注C++细节——抽象的理解
- Java 数据库操作
- JS高级编程之模拟常用java类
- UVa:11988 Broken Keyboard (a.k.a. Beiju Text)
- 对于SOA的初步了解
- fork函数的使用详解
- Use the physical standby database as a test environment
- hibernate、spring、c3p0整合
- hibernate应用实例:hibernate validator 验证数据合法性