这篇文章主要介绍了c++隐式类型转换的二个示例,需要的朋友可以参考下
# FileName: explicit_try.cc
# Desc: 验证含有一个参数的非explicit构造函数是否可以拷贝初始化
=============================================================================*/
#include
#include
#include
using std::cout;
using std::cin;
using std::endl;
using std::string;
using std::vector;
class People {
public:
People() = default;
People(string s):name(s) { }
string getName() const { return name; }
static vector &getVector() { return name_arr; }
//隐式类型转换,用string生成一个临时量,因此可以绑定到const形参上
static void addToVector(const People &p) {
name_arr.push_back(p.getName());
}
private:
string name = “”;
static vector name_arr;
};
vector People::name_arr = {};
int main(int argc, const char *argv[])
{
People p;
cout << "p :" << endl;
cout << p.getName() << endl;
People tom(“tom”);
People::addToVector(tom);
string Bo来源gaodai$ma#com搞$代*码*网b = “Bob”;
People::addToVector(Bob);//隐式类型转换
//People::addToVector(“Bob”);//只允许一步的隐式类型转换
vector v = People::getVector();
cout << "name_arr:" << endl;
for (const auto &p : v) {
cout << p << " ";
}
cout << endl;
string myName = “guo”;
People guo = myName; //隐式类型转换允许拷贝初始化形式的转换
cout << guo.getName() << endl;
return 0;
}
以上就是c++隐式类型转换示例分享的详细内容,更多请关注gaodaima搞代码网其它相关文章!