c++如何禁止函數(shù)的傳值調(diào)用操作-創(chuàng)新互聯(lián)

這篇文章主要介紹了c++如何禁止函數(shù)的傳值調(diào)用操作,具有一定借鑒價(jià)值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。

創(chuàng)新互聯(lián)長(zhǎng)期為1000多家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為鶴崗企業(yè)提供專業(yè)的成都做網(wǎng)站、網(wǎng)站設(shè)計(jì),鶴崗網(wǎng)站改版等技術(shù)服務(wù)。擁有10余年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。

代碼編譯運(yùn)行環(huán)境:VS2017+Debug+Win32

按照參數(shù)形式的不同,C++應(yīng)該有三種函數(shù)調(diào)用方式:傳值調(diào)用、引用調(diào)用和指針調(diào)用。對(duì)于基本數(shù)據(jù)類型的變量作為實(shí)參進(jìn)行參數(shù)傳遞時(shí),采用傳值調(diào)用與引用調(diào)用和指針調(diào)用的效率相差不大。但是,對(duì)于類類型來(lái)說(shuō),傳值調(diào)用和引用調(diào)用之間的區(qū)別很大,類對(duì)象的尺寸越大,這種差別越大。

傳值調(diào)用與后面兩者的區(qū)別在于傳值調(diào)用在進(jìn)入函數(shù)體之前,會(huì)在棧上建立一個(gè)實(shí)參的副本,而引用和指針調(diào)用沒(méi)有這個(gè)動(dòng)作。建立副本的操作是利用拷貝構(gòu)造函數(shù)進(jìn)行的。因此,要禁止傳值調(diào)用,就必須在類的拷貝構(gòu)造函數(shù)上做文章。

可以直接在拷貝構(gòu)造函數(shù)中拋出異常,這樣就迫使程序員不能使用拷貝構(gòu)造函數(shù),否則程序總是出現(xiàn)運(yùn)行時(shí)錯(cuò)誤。但是,這不是一個(gè)好的辦法,應(yīng)該在編譯的階段就告訴程序員,不能使用該類的拷貝構(gòu)造函數(shù)。

1.不顯示定義拷貝構(gòu)造函數(shù)可行嗎?

#include <iostream>
using namespace std;

class A
{
public:
	int num;
	A(){num=5;}
};

void show(A a)
{
	cout<<a.num<<endl;
}

int main()
{
	A obj;
	show(obj);
}

網(wǎng)頁(yè)題目:c++如何禁止函數(shù)的傳值調(diào)用操作-創(chuàng)新互聯(lián)
文章分享:http://muchs.cn/article2/cechoc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機(jī)、云服務(wù)器、Google、電子商務(wù)、做網(wǎng)站、微信公眾號(hào)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化