C++学习笔记三:类和对象
2018-01-12 12:40
176 查看
1.3.1 类和对象的区别
在C++里面,类 和对象的区别在于编译器是否会为其分配空间,显然,类不会,而对象会。
推广到现实生活中,星球是类,地球是对象;大熊猫是类,成都动物园的大熊猫小美是对象,也就是说,类是存在意识中的概念或者定义,它不占据现实的物质空间,而对象必然是某种物质空间,或者说对象必然占据了一定的物质空间,比如地球,比如小美。
PS:因为刚学,所以关于类是否会被分配空间问题的理解可能存在偏差。但开始学习,这样理解对我来将就足够了。以后搞清楚了可能会修正(2018-1-12 12:45:42)
1.3.2 如何定义一个类
如何定义一个类,我们可以从两种方式来区分。
现实世界
你的世界
现实世界好理解,就是现实世界对某种类的定义,比如人类,行星等等。
而你的世界呢?
你可以在你的世界任意定义类的性质,因为在你的世界,你就是上帝。比如,你可以这样定义学生类:
class my_stu {
char * name;
void func_上网(void);
void func_看妹纸(void); //
}
虽然这个学习类和现实世界对学生的定义不同(学生不一定都上网),但在你的世界,这个学生类定义是正确的,
换言之,你的世界的学生就是只有姓名,上网和看妹纸三个属性,只要在你世界满足这个三个条件的对象,我们都可以认为他
是学生,而不是。。。网管(
)。
但在实际的业务需求中,为了让你的世界的类能为现实世界服务,你需要尽量的让你的类定义符合现实的概念。
举个列子,比如某个学校要求你开发“学生成绩管理系统”,显然,学生类里面必然存在成绩这条属性,
而你在你的世界定义的学生类my_stu不存在这种属性,也就是说,你可能没办法完成学校的这个业务需求。
所以,你就得扩充你世界里对学生类的定义,以期望它能满足实际的业务需求。
总结一下:在C++里面,定义一个类的方式存在两种:
1、现实世界:根据现实世界对这个类的定义来定义;
2、你的世界:在你的世界里,原则上你可以任意定义类,但为了让你类能服务与现实世界,
所以你需要尽量让你的类属性贴近现实世界对应类的属性。
在C++里面,类 和对象的区别在于编译器是否会为其分配空间,显然,类不会,而对象会。
推广到现实生活中,星球是类,地球是对象;大熊猫是类,成都动物园的大熊猫小美是对象,也就是说,类是存在意识中的概念或者定义,它不占据现实的物质空间,而对象必然是某种物质空间,或者说对象必然占据了一定的物质空间,比如地球,比如小美。
PS:因为刚学,所以关于类是否会被分配空间问题的理解可能存在偏差。但开始学习,这样理解对我来将就足够了。以后搞清楚了可能会修正(2018-1-12 12:45:42)
1.3.2 如何定义一个类
如何定义一个类,我们可以从两种方式来区分。
现实世界
你的世界
现实世界好理解,就是现实世界对某种类的定义,比如人类,行星等等。
而你的世界呢?
你可以在你的世界任意定义类的性质,因为在你的世界,你就是上帝。比如,你可以这样定义学生类:
class my_stu {
char * name;
void func_上网(void);
void func_看妹纸(void); //
}
虽然这个学习类和现实世界对学生的定义不同(学生不一定都上网),但在你的世界,这个学生类定义是正确的,
换言之,你的世界的学生就是只有姓名,上网和看妹纸三个属性,只要在你世界满足这个三个条件的对象,我们都可以认为他
是学生,而不是。。。网管(
)。
但在实际的业务需求中,为了让你的世界的类能为现实世界服务,你需要尽量的让你的类定义符合现实的概念。
举个列子,比如某个学校要求你开发“学生成绩管理系统”,显然,学生类里面必然存在成绩这条属性,
而你在你的世界定义的学生类my_stu不存在这种属性,也就是说,你可能没办法完成学校的这个业务需求。
所以,你就得扩充你世界里对学生类的定义,以期望它能满足实际的业务需求。
总结一下:在C++里面,定义一个类的方式存在两种:
1、现实世界:根据现实世界对这个类的定义来定义;
2、你的世界:在你的世界里,原则上你可以任意定义类,但为了让你类能服务与现实世界,
所以你需要尽量让你的类属性贴近现实世界对应类的属性。
相关文章推荐
- 【学习笔记】C++高级程序设计:STL:函数对象
- C++学习笔记之——局部对象和临时对象的构造和析构时机
- C++学习笔记(13)——利用对象、引用、指针调用虚函数
- C++对象工厂模式:ObjectFactory学习笔记
- C++学习笔记 数组对象
- C++学习笔记(一):类和对象
- C++对象模型学习笔记
- C++学习笔记一(对象和类)
- Geekband_C++面向对象高级编程_第六周学习笔记
- C++ 学习笔记(14)重载运算与类型转换、函数对象、function库
- C++对象模型学习笔记
- 深入C++对象模型学习笔记 第3章 Data 语意学
- C++学习笔记(二):类和对象
- C++学习笔记【类与对象】
- 《深度探索C++对象模型(Inside The C++ Object Model )》学习笔记
- C++使用构造函数初始化结构对象学习笔记
- C++学习笔记-const对象,类型别名,auto和decltype
- 《深度探索C++对象模型(Inside The C++ Object Model )》学习笔记
- Effective C++学习笔记:必须返回一个对象时不要试图返回一个引用
- C++之面向对象学习笔记01