C++11特性學習 Day1

nullptr

對于c中null = (void*)0,所以在為函數傳參傳入0時,無法清楚地分辨是int類型的0還是指的是空指針null

在C++11中清晰的將空指針變為了nullptr,0專指int型的數字0

override關鍵字

在子類中對父類的函數的覆寫之后加上override關鍵字,編譯器就可以檢查是否出錯,比如拼寫是否有錯和參數個數是否正確

final關鍵字

有兩個用途,一個是組織從類繼承,一個是阻止虛函數的覆寫

#include <iostream>
using namespace std;class A	final
{};class B : public A	//錯誤,由于A類有final關鍵字,A類無法被繼承
{};
int main()
{cout << "final key word." << endl;return 0;
}
#include <iostream>
using namespace std;class A	//final
{public:virtual void show()final{};
};class B : public A
{public:virtual void show()override{};	//錯誤,因為父類中的虛函數帶有final關鍵字,不能被覆寫
};
int main()
{cout << "final key word." << endl;return 0;
}

default關鍵字

令函數等于default,就是使用系統默認提供的函數(如果有的話)

#include <iostream>
using namespace std;class A
{public:A() = default; //這里相當于默認提供的無參默認構造函數A(){}
//		~A(){}
//		A(const A &another){}
//		A operator=(const A &another){}A(int a){}
};int main()
{A a;return 0;
}

delete關鍵字

能夠讓程序員顯式的禁用某個函數,在函數聲明后加上“= delete”,就可以將此函數禁用

#include <iostream>
using namespace std;class A
{public:static A* get_A(){if(p == nullptr)p = new A;return p;}A() = default;~A() = delete;A(const A &another){}A operator=(const A &another){}private:static A* p; 
};
A* A::p = nullptr;int main()
{A* ap = A::get_A();delete ap;	//illegal,這里不能delete,因為在A類中顯式的禁用了A的析構函數return 0;
}

原生字符串raw string

為了解決字符串中一些字符必須經過轉義才能輸出的問題

#include <iostream>
#include <string.h>
using namespace std;int main()
{//原本字符串為C:\dell\UpdatePackage\log string str1 = "C:\\dell\\UpdatePackage\\log";cout << str1 << endl;string str2 = R"(C:\dell\UpdatePackage\log)";	//將str2定義為原生字符串 cout << str2 << endl;
}

auto-for循環(范圍for循環)

#include <iostream>
using namespace std;int main()
{int p[] = {1,2,3,4,5,6,7,8,9,10};for(auto &i : p){cout << i << endl;}
//	const char *q = "china";//這里的指針指向的是字符串字面量,不可改變,要加const 
//	for(const auto &i : q)//illegal,字符指針這種格式不帶有begin、end,
//							//但是范圍for循環底層是用begin、end來實現的 
//	{
//		cout << i << endl;
//	}char m[] = "china";	//這樣以數組的形式是可以使用范圍for循環的for(auto &i : m){cout << i << endl;}char n[] = {'c','h','i','n','a'};for(auto &i : n){cout << i << endl;}return 0;
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/90211.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/90211.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/90211.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

微算法科技(NASDAQ: MLGO)探索優化量子糾錯算法,提升量子算法準確性

隨著量子計算技術的飛速發展&#xff0c;量子計算機在解決復雜計算問題上的潛力日益顯現。然而&#xff0c;量子計算面臨的一個重大挑戰是量子比特的脆弱性&#xff0c;即量子比特容易受到環境噪聲和干擾的影響&#xff0c;導致量子態的塌縮和計算結果的錯誤。微算法科技&#…

MongoDB數據庫詳解-針對大型分布式項目采用的原因以及基礎原理和發展-卓伊凡|貝貝|莉莉

MongoDB數據庫詳解-針對大型分布式項目采用的原因以及基礎原理和發展-卓伊凡|貝貝|莉莉由于老產品即時通訊私有化軟件就是采用MongoDB &#xff0c;但是版本實在太低&#xff0c;要做大更新&#xff0c;其次針對10年前完美運營的項目來到10年后的現在就不一定行&#xff0c;優雅…

Kotlin 中的單例模式(Singleton)與對象聲明

在 Kotlin 中&#xff0c;類描述的是一種通用結構&#xff0c;可以多次實例化&#xff0c;也可以用多種方式實例化。但有時我們只需要單個實例&#xff0c;不多不少。單例模式能幫你更好地組織代碼&#xff0c;把相關的方法聚合在一起。 單例模式是什么&#xff1f; 單例模式是…

Shell 編程基礎入門從認識到實戰

對于剛接觸 Linux 或 Unix 系統的開發者來說&#xff0c;Shell 腳本往往是自動化操作的第一道門檻。它不像 Python 那樣語法簡潔&#xff0c;也不像 Java 那樣有完善的面向對象體系&#xff0c;但卻能以極少的代碼實現強大的系統管理功能。本文將從 Shell 的基本概念講起&#…

混合遺傳粒子群算法在光伏系統MPPT中的應用研究

混合遺傳粒子群算法在光伏系統MPPT中的應用研究 前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家&#xff0c;覺得好請收藏。點擊跳轉到網站。 摘要 本文針對光伏系統最大功率點跟蹤(MPPT)問題&#xff0…

機器視覺的布料絲印應用

在紡織印染行業&#xff0c;布料絲印工藝的精度直接決定產品外觀質量與市場競爭力。傳統絲印設備依賴機械定位與人工校準&#xff0c;面對高密度圖案、柔性面料或復雜紋理時&#xff0c;易出現套色偏移、油墨滲透不均等問題&#xff0c;導致良品率波動與生產成本攀升。 隨著機…

前端常用類庫

常用類庫 類庫作用 類庫可以幫助我們快速實現項目業務的開發與功能的實現, 幫助我們解放勞動力提高生產效率, 前端中的類庫與框架都是由原生javascript編寫, 提供給其他開發者應用于某一業務環境或者需求。一般有開發者/團隊開源維護. 優秀的類庫需要具備高度封裝可用, 穩定, …

通俗易懂循環神經網絡(RNN)指南

本文用直觀類比、圖表和代碼&#xff0c;帶你輕松理解RNN及其變體&#xff08;LSTM、GRU、雙向RNN&#xff09;的原理和應用。什么是循環神經網絡 循環神經網絡&#xff08;Recurrent Neural Network, RNN&#xff09;是一類專門用于處理序列數據的神經網絡。與前饋神經網絡不同…

【SVM】支持向量機實例合集

基于Java的SVM(支持向量機)實例合集 以下是一個基于Java的SVM(支持向量機)實例合集,包含核心代碼示例和應用場景說明。這些例子基于流行的機器學習庫(如LIBSVM、Weka、JSAT)實現。 數據準備與加載 使用LIBSVM格式加載數據集: // 加載LIBSVM格式數據 svm_problem pr…

Python100個庫分享第38個—lxml(爬蟲篇)

目錄專欄導讀&#x1f4da; 庫簡介&#x1f3af; 主要特點&#x1f6e0;? 安裝方法Windows安裝Linux/macOS安裝驗證安裝&#x1f680; 快速入門基本使用流程HTML vs XML解析&#x1f50d; 核心功能詳解1. XPath選擇器2. CSS選擇器支持3. 元素操作&#x1f577;? 實戰爬蟲案例…

imx6ull-系統移植篇17——linux頂層 Makefile(上)

目錄 前言 頂層 Makefile 源碼簡析 版本號 MAKEFLAGS 變量 命令輸出 靜默輸出 設置編譯結果輸出目錄 代碼檢查 模塊編譯 設置目標架構和交叉編譯器 調用 scripts/Kbuild.include 文件 交叉編譯工具變量設置 頭文件路徑變量 導出變量 make xxx_defconfig 過程 …

OpenCV 官翻6 - Computational Photography

文章目錄圖像去噪目標理論OpenCV中的圖像去噪1、cv.fastNlMeansDenoisingColored()2、cv.fastNlMeansDenoisingMulti()附加資源圖像修復目標基礎概念代碼補充資源練習高動態范圍成像&#xff08;HDR&#xff09;目標理論基礎曝光序列HDR1、將曝光圖像加載到列表中2、將曝光序列…

APT32F1732RBT8愛普特微電子 32位MCU國產芯片 智能家居/工業控制 首選

APT32F1732RBT8 愛普特微電子&#xff0c;32位MCU國產芯片一、產品簡介APT32F1732RBT8 是愛普特微電子&#xff08;APT&#xff09;推出的高性能32位ARM Cortex-M0內核MCU&#xff0c;主頻高達48MHz&#xff0c;內置64KB Flash8KB RAM&#xff0c;專為智能家居、工業控制、消費…

Smart Tomcat

本篇博客的內容是教你借助idea中的插件,把tomcat集成到idea中安裝 Smart Tomcat 插件搜索下載 ,如果一直處于加載界面,就嘗試一下科學上網配置 Smart Tomcat 插件 點擊右上角的 "Add Configuration"選擇左側的 "Smart Tomcat" 在 Name 這一欄填寫一個名字(…

Linux_shell編寫

title: Linux_4 shell編寫 shell pwd (/root/A/2025_7/19/myshell) 首先需要設計命令行提示 &#xff08;MakeCommandLine()&#xff09; 首先獲取相關信息 getenv(“name”) // 獲取用戶名 const char* GetUserName() {const char* name getenv("USER");if (name …

【數據結構】棧的深入解析--用C語言實現

文章目錄1.棧的概念2.棧的底層結構3.棧的功能4.棧的實現4.1.棧結構的定義4.2.棧的初始化4.3.棧的銷毀4.4.入棧4.5.出棧4.6.取棧頂元素4.7.獲取棧中有效元素個數5.完整代碼Stack.hStack.cmain.c運行結果1.棧的概念 是一種特殊的線性表&#xff0c;只允許數據在固定的一段進行插…

Git倉庫核心概念與工作流程詳解:從入門到精通

Git倉庫的基本概念版本庫&#xff08;Repository&#xff09;是Git的核心概念&#xff0c;你可以簡單理解為一個被Git管理的目錄。這個目錄里的所有文件都能被Git跟蹤&#xff0c;記錄每次修改和刪除&#xff0c;讓你可以隨時追溯歷史或在未來某個時刻"還原"文件。Gi…

Web開發 05

1 React庫&#xff08;人話詳解版&#xff09;別慌&#xff0c;React 剛接觸時是會有點懵&#xff0c;咱們用 “人話 類比” 一步步拆&#xff1a;核心概念先抓牢組件&#xff08;Component&#xff09;把它想成 “樂高積木”&#xff0c;比如做個社交 App&#xff0c;頂部導航…

RustDesk 自建中繼服務器教程(Mac mini)

&#x1f4d6; 教程目標 在家里的 Mac mini 上部署 RustDesk 中繼服務器 (hbbs hbbr)&#xff0c;讓你從辦公室、筆電或手機 低延遲、安全 地遠程控制家里的 Windows 和 Mac mini。 ? 不依賴第三方服務器 ? 支持 P2P 和中繼雙模式 ? 全流量可控、跨平臺 &#x1f3d7;? 架…

數據庫—修改某字段默認值

前言有時候&#xff0c;數據庫的字段默認值沒有正確設置&#xff0c;這時候需要改默認值。以下是我做的改默認值的記錄&#xff0c;希望對網友有所幫助。1.SQL SERVER下面的示例假設你要修改名為 YourColumnName 的字段&#xff0c;并為其設置一個新的默認值 NewDefaultValue。…