博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
P8-c++对象和类-01默认构造函数详解
阅读量:4047 次
发布时间:2019-05-25

本文共 1506 字,大约阅读时间需要 5 分钟。

文章目录

c++ primer plus 学习心得

第10章 对象和类

1. 默认构造函数

默认构造函数是在未提供显示初始值时,用来创建对象的构造函数。也就是说,它是用于下面这种声明的构造函数

Demo demo1; // 使用默认的构造函数Demo *pDemo = new Demo; // 使用默认的构造函数

这条语句管用的原因在于,如果没有提供任何构造函数,则c++将自动提供默认构造函数。

默认的构造函数没有参数,因为声明中不包含值。

当且仅当没有定义任何构造函数时,编译器才会提供默认构造函数。为类定义了构造函数后,程序员就必须为它提供默认构造函数,如果提供了非默认构造函数,但是没有提供默认构造函数,则下面的声明将会出错。

Demo demo;  //这个会报错

1.1 一个详细的例子

1. 使用默认的构造函数

#include 
using namespace std;class Demo {
int age;#if 0 Demo (int age) {
this->age = age; }#endif};int main(int argc, char *argv[]){
Demo d1; return 0;}

结果编译通过,正常

2. 添加了非默认构造函数,但是没有默认的构造函数

#include 
using namespace std;class Demo {
int age;#if 1 Demo (int age) {
this->age = age; }#endif};int main(int argc, char *argv[]){
Demo d1; return 0;}

结果编译报错,没有默认的构造函数。

在这里插入图片描述

3. 添加了非默认构造函数,也有默认的构造函数

#include 
using namespace std;class Demo {
int age;public: Demo () {
};#if 1 Demo (int age) {
this->age = age; }#endif};int main(int argc, char *argv[]){
Demo d1; return 0;}

这个编译能够通过!

在这里插入图片描述

定义默认的构造函数有两种方式:

1. 是写一个没有参数的默认构造函数。就是上面3 所使用的这种方式
2. 给已有构造函数所有的参数提供默认值!

#include 
using namespace std;class Demo {
int age;public: //Demo () {};#if 1 Demo (int age = 10) {
this->age = age; }#endif};int main(int argc, char *argv[]){
Demo d1; return 0;}

这样编译也不会报错!

在这里插入图片描述

PS:

Demo d1();------>这种形式不是创建一个对象,而是声明一个函数,返回的对象为Demo

2. 去哪获取笔记和详细的资料

代码资料的路径

在这里插入图片描述

2.1 微信公众号,梦悦foundation

在这里插入图片描述

2.2 公众号里点击IT资源,有链接

2.3 后台回复 c++资料

2.4 加up主微信,进学习交流群,大家一起带你飞!

在这里插入图片描述

3. 获取到的笔记怎么使用

3.1 pdf文件

3.2 html格式文件

3.1 蚂蚁笔记

3.2 印象笔记

在这里插入图片描述

转载地址:http://peyci.baihongyu.com/

你可能感兴趣的文章
转载一个webview开车指南以及实际项目中的使用
查看>>
android中对于非属性动画的整理
查看>>
一个简单的TabLayout的使用
查看>>
ReactNative使用Redux例子
查看>>
Promise的基本使用
查看>>
coursesa课程 Python 3 programming 统计文件有多少单词
查看>>
coursesa课程 Python 3 programming 输出每一行句子的第三个单词
查看>>
Returning a value from a function
查看>>
coursesa课程 Python 3 programming Functions can call other functions 函数调用另一个函数
查看>>
coursesa课程 Python 3 programming The while Statement
查看>>
course_2_assessment_6
查看>>
coursesa课程 Python 3 programming course_2_assessment_7 多参数函数练习题
查看>>
coursesa课程 Python 3 programming course_2_assessment_8 sorted练习题
查看>>
在unity中建立最小的shader(Minimal Shader)
查看>>
1.3 Debugging of Shaders (调试着色器)
查看>>
关于phpcms中模块_tag.class.php中的pc_tag()方法的含义
查看>>
vsftp 配置具有匿名登录也有系统用户登录,系统用户有管理权限,匿名只有下载权限。
查看>>
linux安装usb wifi接收器
查看>>
多线程使用随机函数需要注意的一点
查看>>
getpeername,getsockname
查看>>