C++ Effective詳解
explicit關(guān)鍵字
用來(lái)放置類(lèi)進(jìn)行隱式轉(zhuǎn)換
例如一個(gè)類(lèi)有一個(gè)形參是int的構(gòu)造函數(shù)
如下,在Pos的vector push的時(shí)候 ,直接使用一個(gè)int 就可以隱式轉(zhuǎn)換為Pos
如果不想被隱式轉(zhuǎn)換 就加上explicit關(guān)鍵字
#include <iostream>
#include <tuple>
#include <queue>
#include <stack>
#include <list>
using namespace std;
#define debug(x) cout<<#x<<": "<<(x)<<endl;
class Pos {
public:
Pos() {
}
Pos(int x) {
}
};
int main(int argc, const char* argv[]) {
vector<Pos> arr;
//arr.reserve(1e5);
for (int i = 0; i < 1e5; ++i) {
arr.push_back(1);
}
return 0;
}
編譯成功!
#include <iostream>
#include <tuple>
#include <queue>
#include <stack>
#include <list>
using namespace std;
#define debug(x) cout<<#x<<": "<<(x)<<endl;
class Pos {
public:
explicit Pos() {
}
explicit Pos(int x) {
}
};
int main(int argc, const char* argv[]) {
vector<Pos> arr;
//arr.reserve(1e5);
for (int i = 0; i < 1e5; ++i) {
arr.push_back(1);
}
return 0;
}
編譯失??!
總結(jié)
本片文章就到這里了,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
C語(yǔ)言簡(jiǎn)單實(shí)現(xiàn)計(jì)算字符個(gè)數(shù)的方法
這篇文章主要介紹了C語(yǔ)言簡(jiǎn)單實(shí)現(xiàn)計(jì)算字符個(gè)數(shù)的方法,涉及C語(yǔ)言針對(duì)字符串的簡(jiǎn)單遍歷與判定技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07
C++ 組合 (Composition)的介紹與實(shí)例
這篇文章主要給大家介紹了關(guān)于C++ 組合(Composition)的相關(guān)資料,組合就是將對(duì)象組合成樹(shù)形結(jié)構(gòu)以表示“部分-整體”的層次結(jié)構(gòu),使得用戶(hù)對(duì)單個(gè)對(duì)象和組合對(duì)象的使用具有一致性。需要的朋友可以參考下2021-05-05
基于Qt實(shí)現(xiàn)簡(jiǎn)易GIF播放器的示例代碼
這篇文章主要介紹了如何利用Qt設(shè)計(jì)一個(gè)簡(jiǎn)易GIF播放器,可以播放GIF動(dòng)畫(huà)。其基本功能有載入文件、播放、暫停、停止、快進(jìn)和快退,感興趣的可以了解一下2022-06-06
c++模擬實(shí)現(xiàn)string類(lèi)詳情
這篇文章主要介紹了c++模擬實(shí)現(xiàn)string類(lèi)詳情,string表示可變長(zhǎng)的字符序列,使用string類(lèi)型必須首先包含string頭文件。作為標(biāo)準(zhǔn)庫(kù)的一部分,string定義在命名空間std中,下面進(jìn)入文章一起看看詳細(xì)內(nèi)容吧2022-01-01

