类和对象基础知识
来源:互联网 发布:ppt柱形图数据用 表示 编辑:程序博客网 时间:2024/05/29 18:31
1.类和对象的基础知识
定义:类就可以看做是对相似事物的抽象
访问限定符:public,private,protect
封装性:
1)良好的封装能够减少耦合。
2)类内部的结构可以自由修改。
3)可以对成员进行更精确的控制。
4)隐藏实现细节
对象大小计算:只计算非静态成员变量(公有私有都算), 不算函数,和static变量,有内存对齐,空间换时间
2.四个默认成员函数,运算符重载
1)构造函数:初始化对象
无返回值
与类同名
实例化时自动调用
可重载
只要定义了构造函数,系统不会默认生成
无参构造函数,全缺省构造函数,都叫缺省构造函数
缺省构造函数只能有一个,可以半缺省
可在类外定义
2)拷贝构造函数:特殊的构造函数
拷贝构造是构造函数的重载
自己写拷贝构造时候参数要传引用,否则无穷递归
3)析构函数:清理工作
对象生命周期结束时自动调用
类名前面加~
不删除对象,而是做一些清理工作,关闭文件,释放动态开辟等
4)赋值运算符的重载
两个对象都存在时才会有赋值运算符重载
d1和d2两个日期类都存在,d1=d2是赋值运算符重载
Date d2 = d1;这是拷贝构造,因为d2不是已经存在的
运算符重载
不能重载的5个运算符: .* :: sz ?: .
3.隐含的this指针
非静态成员函数第一个参数都是this指针
public: void Display(Date *this)
cout<<this->_year;
main: Date d1; d1.Display(&d1);
4.运算符重载背后做的事情
两个日期类 d1 == d2
编译器会处理成 d1.operator==(&d1,d2);
定义:类就可以看做是对相似事物的抽象
访问限定符:public,private,protect
封装性:
1)良好的封装能够减少耦合。
2)类内部的结构可以自由修改。
3)可以对成员进行更精确的控制。
4)隐藏实现细节
对象大小计算:只计算非静态成员变量(公有私有都算), 不算函数,和static变量,有内存对齐,空间换时间
2.四个默认成员函数,运算符重载
1)构造函数:初始化对象
无返回值
与类同名
实例化时自动调用
可重载
只要定义了构造函数,系统不会默认生成
无参构造函数,全缺省构造函数,都叫缺省构造函数
缺省构造函数只能有一个,可以半缺省
可在类外定义
2)拷贝构造函数:特殊的构造函数
拷贝构造是构造函数的重载
自己写拷贝构造时候参数要传引用,否则无穷递归
3)析构函数:清理工作
对象生命周期结束时自动调用
类名前面加~
不删除对象,而是做一些清理工作,关闭文件,释放动态开辟等
4)赋值运算符的重载
两个对象都存在时才会有赋值运算符重载
d1和d2两个日期类都存在,d1=d2是赋值运算符重载
Date d2 = d1;这是拷贝构造,因为d2不是已经存在的
运算符重载
不能重载的5个运算符: .* :: sz ?: .
3.隐含的this指针
非静态成员函数第一个参数都是this指针
public: void Display(Date *this)
cout<<this->_year;
main: Date d1; d1.Display(&d1);
4.运算符重载背后做的事情
两个日期类 d1 == d2
编译器会处理成 d1.operator==(&d1,d2);
阅读全文
0 0
- 类和对象基础知识
- 类和对象的基础知识
- OC基础知识 -- 类和对象
- Java 类和对象基础知识
- 类和对象的基础知识
- Javascript类和对象基础知识
- oc基础知识1:类和对象
- java 基础知识总结之 类和对象
- java基础知识(1)类和对象
- 类和对象基础知识整理(一)
- C++类和对象的基础知识详解
- CPP基础知识(二)--类和对象
- java基础知识(二 对象和类)
- c++类和对象相关基础知识
- D3D基础知识和对象详解
- js对象基础知识和程序设计
- 面向对象----类基础知识
- ExtJS教程(2)--- Javascript类和对象基础知识
- js解析与读取JSON数据
- POJ 1023--The Fun Number System
- JavaScript高级程序设计笔记-8.1
- Spring+MyBatis实现数据库读写分离方案
- 值传参、指针传参、引用传参
- 类和对象基础知识
- MySQL数据库基本使用-01-初认数据库使用
- AtCoder Regular Contest 077-D
- 为什么要使用Spring
- 【JAVA集合详解】Vector与ArrayList与CopyOnWriteArrayList区别
- hibernate的一级缓存,
- python入门二(数据库操作)
- go语言学习-----冒泡排序和斐波数列fib
- 9. Palindrome Number