c++中幾個比較不常用的關鍵字
其中比較典型的例子就是容器型別,在這種型別的建構函式中你可以將初始長度作為引數傳遞給建構函式.
例如:
你可以宣告這樣一個建構函式
class Array
{
public:
explicit Array(int size);
......
};
在這裡explicit關鍵字起著至關重要的作用,如果沒有這個關鍵字的話,這個建構函式有能力將int轉換成Array.一旦這種
情況發生,你可以給Array支派一個整數值而不會引起任何的問題,比如:
Array arr;
...
arr = 40;
此時,C++的自動型別轉換會把40轉換成擁有40個元素的Array,並且指派給arr變數,這個結果根本就不是我們想要的結果.如果
我們將建構函式宣告為explicit,上面的賦值操作就會導致編譯器報錯,使我們可以及時發現錯誤.
需要注意的是:explicit同樣也能阻止"以賦值語法進行帶有轉型操作的初始化";
例如:
Array arr(40);//正確
Array arr = 40;//錯誤
相關推薦
c++中幾個比較不常用的關鍵字
我們在編寫應用程式的時候explicit關鍵字基本上是很少使用,它的作用是"禁止單引數建構函式"被用於自動型別轉換,其中比較典型的例子就是容器型別,在這種型別的建構函式中你可以將初始長度作為引數傳遞給建構函式.例如:你可以宣告這樣一個建構函式class Array{public: explicit Array
C# 中幾個關鍵詞的使用
C#關鍵字對於C#中幾個關鍵詞老是容易搞混淆,在於記錄一下 一 outout 關鍵字可以將值類型轉換成引用類型,帶入到方法中,並進行返回。static void Main(string[] args){ Test2(out int b); Console.WriteLine(b
C中幾個遞迴問題
1. 計算累和 1+2+3+……+n #include<stdio.h> #include<stdlib.h> #include<string.h> int add_up(int n){ if(n==1){ return 1;
webservice 教程學習系列(四)——webservice 中幾個比較重要的術語
(1)wsdl:webservice definition language(直譯webservice定義語言) 1.對應一種型別檔案.wsdl 2.定義了webservice的伺服器端和客戶端應用互動傳遞請求和響應資料的格式和方式; 3.一個webservice對應一個wsdl文件;
C++中幾個預定義變數的介紹
在C++程式設計中,有幾個預定義變數,這幾個預定義變數在使用的時候很方便。比如,在C++中中為了獲取時間,常常需要借用C語言的藉口time或者CTime類,然後如果是簡單的獲取時間,通過
c++中幾個段錯誤除錯記錄
1 執行緒中呼叫一個外部函數出現 段錯誤,但是在主執行緒中卻正常 解決方法:將該執行緒的stack_size設定大一點,因為外部函式可能需要的記憶體資源比較多,預設的stack_size不夠 設定方法如下: bool start(void*(*thread_pro
printf中幾個不常用的格式說明
使用gcc進行編譯後執行輸出如下: 32bit:-128,ffffff80,-128,4294967168 16bit:-128,ff80,65408 8bit:-128,80,128 64bit:-545460846720,ffffff80ffffff80,13831608784361133864
C#中幾種常用的集合的用法
col div tex -c 組成 相同 列表 對象 count 集合:將一推數據類型相同的數據放入到一個容器內,該容器就是數組:內存中開辟的一連串空間。 非泛型集合 ArrayList集合: ArrayList是基於數組實現的,是一個動態數組,其容量能自動 增
圖像處理中幾個基本的處理方法c#代碼實現
位圖 edi windows系統 process 圖案 電視 間接 做了 同步 圖像是人類獲取和交換信息的主要來源,因此,圖像處理的應用領域必然涉及到人類生活和工作的方方面面。隨著人類活動範圍的不斷擴大,圖像處理的應用領域也將隨之不斷擴大。(1)航天和航空技術方面的應用 數
Ansible中幾個常用模塊的使用
一定的 要求 數據 cron rem opp move 服務 syn 這一篇博客寫的是近幾天學到的幾個常用的Ansible模塊,這些模塊可以滿足我們日常的一些運維工作。文中出現的srv代表目標主機清單名稱。 1.Command模塊是在遠程主機執行命令
Java多線程入門中幾個常用的方法
-s lse row src mat mil 單線程 oid star 一.currentThread()方法 currentThread方法就是返回當前被調用的線程。 該方法為一個本地方法,原碼如下: /** * Returns a reference t
css中幾個常用居中方法
1.拔河效應 水平居中:設定居中元素的left,right都為0,然後加一個margin:auto;即可。 舉個栗子: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"&g
J2EE中幾個常用的名詞解釋
container ica 一致性 框架 管理 cor 兼容性 系統 自己 1.web容器:給處於其中的應用程序組件(JSP,SERVLET)提供一個環境,使JSP,SERVLET直接和容器中的環境變量接接口互,不必關註其它系統問題。主要有WEB服務器來實現。例如:T
C++中兩個常用的控制語句格式的函式(width和precision函式)
width 語法: int width(); int width( int w ); 函式 width()返回當前的寬度。可選擇引數w用於設定寬度大小。寬度是指每一次輸
SpringMVC中幾個常用註解的用法
一、@Controller 以前在編寫Controller方法的時候,需要開發者自定義一個Controller類實現Controller介面,實現handleRequest方法返回ModelAndView。並且需要在Spring配置檔案中配置Handle,將
Java中幾個常用設計模式
1.單例模式(有的書上說叫單態模式其實都一樣) 該模式主要目的是使記憶體中保持1個物件。看下面的例子: package org.sp.singleton; //方法一 public class Singleton { //將自身的例項物件設定為一個屬性,並加上S
C++中4個與型別轉換相關的關鍵字
static_cast const_cast dynamic_cast reinterpret_cast 一.型別轉換 表示式是否合法取決於運算元的型別,而且合法的表示式其含義也由運算元型別決定。在C++中,某些型別之間存在相
我常用的幾個比較有意思的網站
###部分手段需要/科/學/上/網 上網類 Chrome+Google——程式設計師必備 Tor——深層網路(只可意會不可言傳,自己google) 程式碼託管網站 GitHub ——據說不會用Github的程式設計師不是
C++中幾種變數宣告的比較
只有打好基礎才能寫出高質量的程式,只有搞清楚了變數到底是建立在棧上的,還是建立在堆上才能有效避免記憶體洩漏。 看這個例子: #include <stdio.h>class test{public: test(){printf("constructor/n")
比較C#中幾種常見的複製位元組陣列方法的效率
在日常程式設計過程中,我們可能經常需要Copy各種陣列,一般來說有以下幾種常見的方法:Array.Copy,IList<T>.Copy,BinaryReader.ReadBytes,Buffer.BlockCopy,以及System.Buffe