網站首頁 編程語言 正文
構造函數概念:
構造函數是一個特殊的成員函數,名字與類名相同,創建類類型對象時由編譯器自動調用,保證每個數據成員都有一個合適的初始值,并且在對象的生命周期內只調用一次(創建對象)
作用:
創建一個對象(面向對象,第一步肯定得創建對象)并且數據成員都有初始數值(數值有初始化和賦值)
初始化和賦值區別
- 初始化(數值在構建函數中給予)
- 賦值(數值在構建函數完成之后給予)
初始化(數值在構建函數中給予)
#ifndef __COMPLEX__ #define __COMPLEX__ class complex { public: complex(double r = 0, double i = 0) : re(r), im(i) {} //初始化 private: double re, im; }; #endif // !__COMPLEX__
#include"complex.h" int main() { complex c1(1, 1); return 0; }
1.調用構造函數
2.創建對象名字為c1
3.對象中數據成員與函數參數對應,進行數值給予,生成對象的數據成員順序是類中private的順序
4.對象c1創建成功
賦值(數值在構建函數完成之后給予)
#ifndef __COMPLEX__ #define __COMPLEX__ class complex { public: complex(double r = 0, double i = 0) //名字與類名相同 { re = r; im = i; } private: double re, im; }; #endif // !__COMPLEX__
#include"complex.h" int main() { complex c1(1, 1); return 0; }
1.調用構造函數
2.創建對象名字為c1
3.構建函數中沒有初始化,編譯器自動加上初始化操作,對數據成員進行隨機數初始化
4.對象c1創建成功
5.函數中輸入的兩個參數,函數執行命令行,對數據進行賦值
如何得知兩則區別
tihs指針
this指針中存儲的是自己對象的地址
在兩者構造函數中使用this指針,初始化操作因為類對象完成初始化前,類對象還未形成,所以會對this報錯
初始化中使用this
class complex { public: complex(double r = 0, double i = 0) : this->re(r),this-> im(i) {} private: double re, im; };
error: expected '{' before 'this'
賦值中使用this
class complex { public: complex(double r = 0, double i = 0) { this->im = r; this->re = i; } private: double re, im; };
原文鏈接:https://blog.csdn.net/ljh5930/article/details/126559320
相關推薦
- 2022-11-11 iPhoneX 及以上 手機底部適配 CSS3方式
- 2021-12-09 Android音頻開發之錄制音頻(WAV及MP3格式)_Android
- 2022-04-20 C#實現變量交換、斐波那契數列、質數、回文方法合集_C#教程
- 2022-08-23 .net?core中的System.Buffers命名空間_基礎應用
- 2022-01-19 iview-admin 富文本編輯器(wangEditor)菜單無法選中解決方案
- 2022-11-27 C++常見的stl容器與相關操作?示例解析_C 語言
- 2023-10-15 小程序動態隱藏分享按鈕
- 2022-12-23 一文帶你了解Android中的網絡請求_Android
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支