`
qwop
  • 浏览: 7624 次
  • 性别: Icon_minigender_1
  • 来自: 景德镇
最近访客 更多访客>>
社区版块
存档分类
最新评论

CPP详解关键字 explicit

    博客分类:
  • cpp
阅读更多
// Explicit.cpp : Defines the entry point for the console application.
//	详解explicit关键字

#include "stdafx.h"
#include <iostream>
#include <string>

using namespace std;
int obj_cnt = 0;
class Person {
public:
	int id;
	char name[ 10 ];
public:
	Person() {}
	/*explicit 
	// 表示初始化类的时候是显示的如 Person p(1),没有加的话可以隐性使用 Person p = 1
	*/ 
	Person( int id = 0 ) {
		this->id = id;

		cout << "隐性构造 by id,构造可以使用 Person p=1  或者 Person p(1) " << endl;
	}

	/* explicit 显性构造*/

	explicit Person( const char* name ) {
		strcpy( this->name , name );
		cout << "显示构造 by char*, 构造必须 Person p1( \"name\")  " << endl;
	}

	virtual ~Person() {
		obj_cnt++;
	}
};

void test() {
	// 隐性构造
	Person p = 1; 
	Person p2( 2 );
	// 显性
	Person p1( "fuck you" );
}
int main(int argc, char* argv[])
{
	// 调用函数,
	test();
	// 构造的对象个数
	cout << obj_cnt << endl;
}

分享到:
评论

相关推荐

    c/c++拷贝构造函数和关键字explicit详解

    关键字explicit 修饰构造方法的关键字,加上了,就告诉编译器,不可以隐式初始化对象;不加就可以隐式初始化对象; 下面的代码是可以正常编译执行的,但是加了关键字explicit,编译就会错我,因为Test t = 100;是...

    C++ Explicit关键字详细解析

    explicit关键字用来修饰类的构造函数,表明构造函数是显示的,相对的是implicit关键字。首先这个关键字只能用在类内部的构造函数声明上,而不能用在类外部的函数定义上,它的作用是不能进行隐式转换。 代码如下: ...

    C++中的explicit关键字实例浅析

    在C++程序中很少有人去使用explicit关键字,不可否认,在平时的实践中确实很少能用的上,再说C++的功能强大,往往一个问题可以利用好几种C++特性去解决。接下来给大家介绍 C++中的explicit关键字,需要的朋友可以参考...

    C++中的Explicit关键字

    在C++程序中很少有人去使用explicit关键字,不可否认,在平时的实践中确实很少能用的上。再说C++的功能强大,往往一个问题可以利用好几种C++特性去解决。但稍微留心一下会发现现有的MFC库或者C++标准库中的相关类...

    C++中explict关键字用法

    C++提供了关键字explicit,可以阻止不应该允许的经过转换构造函数进行的隐式转换的发生。声明为explicit的构造函数不能在隐式转换中使用。 c++规定:对于可能只需传一个参数的默认构造函数,都定义了一种隐式调用。 ...

    C++ explicit通俗解释

    C++ explicit关键字在刚学的时候就接触到了,也从各处了解了一些,但始终云里雾里,在闲来无事的时候再仔细研究了一下,自己消化理解了一下,自认为比其他网友总结的精简而不失准确。

    C++中volatile和mutable关键字用法详解

    C/C++中的volatile关键字和const对应,用来修饰变量,用于告诉编译器该变量值是不稳定的,可能被更改。使用volatile注意事项: (1). 编译器会对带有volatile关键字的变量禁用优化(A volatile specifier is a hint to...

    C++ explicit关键字的应用方法详细讲解

    我们今天为大家介绍的C++ explicit关键字就是其中一个应用比较频繁的关键字。下面就让我们一起来看看这方面的知识吧。 C++ explicit关键字用来修饰类的构造函数,表明该构造函数是显式的,既然有”显式”那么必然就...

    C++关键字大全(67个).txt

    C++关键字大全(67个) asm auto bad_cast bad_typeid bool break case catch char class const const_cast continue default delete do double dynamic_cast else enum except explicit extern false finally float ...

    C++中explicit作用示例代码

    C++入门学习——explicit关键字的作用,相关教程链接如下:http://blog.csdn.net/tennysonsky/article/details/49096977

    C++关键字详细使用

    except explicit extern false finally float for friend goto if inline int long mutable namespace new operator private protected public register reinterpret_cast return short signed sizeof static static...

    ANSYS Workbench基础教程与实例详解.pdf

    ANSYS Workbench基础教程与实例详解

    认识 C++ 中的explicit 关键字

    带单一参数的构造函数在缺省情况下隐含一个转换操作符,请看下面的代码:   class MyClass{ public: MyClass(int nParam);// 带一个参数的构造函数 ... //////////////////////////////

    ABAQUS_Explicit_终极完美版

    ABAQUS_Explicit_终极完美版

    euler-explicit.f.zip_code_euler explicit_explicit_explicit fortr

    Fortran code for euler explicit

    ANSYS Explicit Dynamics Analysis Guide.pdf

    ANSYS Explicit Dynamics Analysis Guide

Global site tag (gtag.js) - Google Analytics