






















C++中,有所謂的顯性轉換跟隱性轉換
在宣告時,加入explicit 這個關鍵字,可以禁止使用顯性轉換,以下為例
using namespace std;
class Stack {
public:
Stack(int a){};
};
void Test(Stack b){
}
int main()
{
Stack s1 = 1; //ok
Stack s2 = Stack(12); //ok
Stack s3(s1); //ok
Test(123); //ok
return 0;
}
using namespace std;
class Stack {
public:
explicit Stack(int){};
};
void Test(Stack b){
}
int main()
{
Stack s1 = 123; //error
Stack s2 = Stack(123); //ok
Stack s3(s1); //ok
Test(123); // error
return 0;
}
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。