浅谈C++类中的默认成员函数
概述
在C++中,类与C语言中的结构体类似,类与结构体的不同之处便是在其内部多了几个成员函数还有几个访问限定符,访问限定符有public(公共)、protected(保护)、private(私有),而成员函数总的来说共包括六大类,他们便是类与结构体的不同之处,六大默认成员函数分别是构造函数,拷贝构造函数,析构函数,赋值操作符重载,取地址操作符重载和const修饰的取地址操作符重载。
刨根问底之三大访问限定符
public
protected与private
刨根问底之默认成员函数
借鉴
构造函数
定义
成员的初始化列表
class Date
{
public://无参Date(){}
};
如果在类体内没有显式定义构造函数,则编译器在默认生成的缺省构造函数便是如此。
(2)带参构造函数
class Date
{
public://带参Date(int year, int month, int day){_year = year;_month = month;_day = day;}
private:int _year;int _month;int _day;
};
(3)全缺省构造函数
class Date
{
public://带参Date(int year = 1996, int month = 1, int day = 1){_year = year;_month = month;_day = day;}
private:int _year;int _month;int _day;
};
全缺省的构造函数不能与 无参的构造函数同时出现在同一个类体内,如果同时出现,在初始化无实参变量时将不知调用它们两个的其中哪个函数。
注意
拷贝构造函数
特征
代码呈现
class Date
{
public://全缺省构造函数Date(){}Date(const Date& d1)//拷贝构造函数{_year = d1.year;_month = d1.month;_day = d1.day;}
private:int _year;int _month;int _day;
};
void Test()
{Date d1;Date d2(d1); //与下一行代码等价Date d3 = d1;
}
但为什么可以直接访问私有成员变量?
析构函数
定义
特征
代码呈现
class Arry
{
public:Arry(int size){_ptr = (int *)malloc(size*sizeof(int));}//析构函数~Arry(){if (_ptr){free(_ptr);_ptr = NULL;}}
private:int* _ptr;
};
浅谈对象的构造与析构次序
成员函数中的this指针
浅谈C++类中的默认成员函数相关推荐
- python编程是干啥用的-浅谈Python类中的self到底是干啥的
Python编写类的时候,每个函数参数第一个参数都是self,一开始我不管它到底是干嘛的,只知道必须要写上.后来对Python渐渐熟悉了一点,再回头看self的概念,似乎有点弄明白了. 首先明确的是s ...
- 类中的常成员函数的使用和定义
如果只对对象进行读操作,则该成员函数可以设计成常成员函数.设计成常成员函数的好处是:让使用者一目了然地知道该成员函数不会改变对象的值. 常成员函数的声明和定义在形式上必须一致,即在函数形参列表的右括号 ...
- 浅谈C++类与对象(一)
文章目录 一.面向对象 二.结构体与类 三.什么是类 3.1 定义 3.2 构成 3.3 类的定义方式(两种) 四.类的访问限定符及封装 4.1 访问限定符 4.2 封装 五.类的作用域 六.类的实例 ...
- 【C++】类和对象【中篇】--C++六个默认成员函数以及const成员函数
文章目录 一.类的6个默认成员函数 二.构造函数 1.概念 2.特性 2.1特征分析--自动生成 2.2.特征分析--选择处理 2.3特征分析--默认构造 3.C++11补丁--缺省值 三.析构函数 ...
- 《C++类基本知识和6个默认成员函数详细剖析》
面向对象编程–类的认识 之前我们学习了C语言知识,C语言是一种面向过程的程序设计语言,而C++语言呢是基于面向对象的一种程序设计语言,关注的是对象,即将一件事情拆分成不同的对象,靠对象间的交互完成.接 ...
- 【 C++ 】类和对象(中)—— 类的6个默认成员函数
目录 1.类的6个默认成员函数 2.构造函数 构造函数概念 构造函数特性 3.析构函数 析构函数概念 析构函数特性 4.拷贝构造函数 拷贝构造函数概念 拷贝构造函数特性 5.赋值运算符重载 运算符重载 ...
- 【C++从入门到踹门】第三篇:类和对象(中)类的默认成员函数
目录 1.类的默认成员函数 2.构造函数 2.1 构造函数引入 2.2 构造函数概念及特点 3. 析构函数 3.1 析构函数引入 3.2 析构函数的概念 3.3 在哪些情况下会程序会执行析构函数? 3 ...
- C++_类中的6个默认成员函数
C++类中有6个默认函数,分别是:构造函数.析构函数.拷贝构造函数.赋值运算符重载.取地址及const取地址运算符重载.这六个函数是很特殊的函数,如果我们不自己实现,编译器就会自己实现.这篇博客中将一 ...
- C++类与对象(类中的六大默认成员函数)
文章目录 类的默认成员函数 构造函数 概念 特征 自己定义构造函数 类中编写 传参方法 编译器自动生成的构造函数 定义变量方式 初始化规则 析构函数 概念 特性 自己定义析构函数 编译器自动生成的析构 ...
最新文章
- 2019年大数据发展将走向何方
- Only tensors or tuples of tensors can be output from traced functions
- 用python画皮卡丘代码-利用Python绘制萌萌哒的皮卡丘
- 85、交换机安全MAC层***配置实验之Port-Security
- 【剑指offer】_17正则表达式的匹配
- @ImportResource()注解的使用
- C++应用通信服务器:MYCP功能介绍
- TensorFlow 教程 --教程--2.3MNIST机器学习入门
- C#.NET验证码智能识别学习笔记---06 解决java jre问题:JTessBoxEditor.jar打开的时报找不到或无法加载主类 com.sun.tools.javac.Main错误
- Redis 通配符查找及批量删除key
- 小额现金贷用户群体分析及风控体系搭建
- Docker教程小白实操入门(12)--如何使用build指令根据Dockerfile文件构建一个镜像
- Introduction to Computer Networking学习笔记(十八):Switching 交换工作实现
- 计算机专业毕业设计—351个VB管理系统源码打包(计算机专业整理)
- Charle分析实战
- gradle教程java_Gradle教程系列 ——Gradle基本语法
- 十个突出问题整改追踪:智慧城市建设滞后
- iOS开发---本地通知(UILocalNotification)
- Power BI-同比、环比、累计值
- 如何用墨刀画出iPhone灵动岛?