explicit 只对构造函数起作用,用来抑制隐式转换。
// stl_1.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "iostream.h"
//using namespace std;
class fun1{
public:
fun1(int n){num=n;}
private:
int num;
};
class fun2{
public:
explicit fun2(int n){num=n;}
private:
int num;
};
int main(int argc, char* argv[])
{
fun1 a1=12.2;
fun1 a3(12);
fun2 a2(12);
printf("Hello World!\n");
return 0;
}
普通
构造函数
能够被
隐式调用
。而explicit
构造函数
只能被显示调用。