explicit
来源:互联网 发布:西部证券交易软件 编辑:程序博客网 时间:2024/06/07 03:38
#include<iostream>using namespace std;class A{ public: A(){ cout<<"A()"<<endl; } //explicit 禁止以赋值形式的隐式调用构造函数 explicit A(int val) :val(val) { cout<<"A(int)"<<endl; } //explicit 禁止以赋值形式的隐式调用拷贝构造函数 explicit A(const A &a) { cout<<"A(const A&)"<<endl; } private: int val;};void main(){ //A a=3; //error A a(3); //A a2=a; //error A a2(a);}
//程序员习惯于遵循既有的限制来增加既有的东西。//黑客习惯于利用既有的东西来打破既有的限制。#include <iostream>using namespace std;class A{public: /*explicit*/ A(int n = 0) : value(n) { cout << "A()" << endl; } /*explicit*/ A(const A &a) { cout << "A(const A &a)" << endl; } ~A(){ cout << "~A()" << endl; } int GetValue() { cout << value << endl; return value; } void SetValue(int n) { value = n; }private: int value;};//普通C++程序员void f(){ A a; a.SetValue(5); a.GetValue();}//C程序员void f2(){ A a; *((int *)&a) = 10; a.GetValue();}//黑客void f3(){ A a = 15; a.GetValue();}void f4(){ A a; cout << "-----" << endl; a = 20; cout << "-----" << endl; a.GetValue();}void main(){ f(); f2(); f3(); f4();}
阅读全文
0 0
- explicit
- explicit
- explicit
- explicit
- explicit
- explicit
- explicit
- explicit
- explicit
- explicit
- explicit
- explicit
- explicit
- explicit
- explicit
- explicit
- explicit
- explicit
- bzoj 4372: 烁烁的游戏 (动态点分治+线段树+LCA)
- have a try
- c#:未将对象引用设置到对象的实例--可能出现的问题总结(转)
- 75.windbg-.printf(打印字符串)
- 操作系统(八)CPU调度 短剩余时间 吞吐量 轮循 实时调度 多处理器调度 (清华 向勇 陈渝版)
- explicit
- android中一些特殊字符
- HttpURLConnection 后台下载APK文件
- try
- 离散余弦变换(DCT)
- Unable to find command: cordova platfrom add android
- 性能指标TP99介绍
- try2
- jenkins使用总结