庄生晓梦

庄生晓梦迷蝴蝶

博客园 首页 新随笔 联系 订阅 管理
  164 随笔 :: 3 文章 :: 1 评论 :: 74038 阅读
// 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;
}



已有 0 人发表留言,猛击->>这里<<-参与讨论


ITeye推荐



posted on   qwop  阅读(559)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示