例1.只有string型构造函数
#include<iostream>
#include<string>
using namespace std;
class Base
{
public:
Base(string str)
{
cout<<"string: "<<str<<endl;
}
};
int main()
{
Base a("haha");
// std::cin.get();
getchar();
}
例2:只有char*构造函数
#include<iostream>
#include<string>
using namespace std;
class Base
{
public:
Base(char* pstr)
{
cout<<"char*: "<<pstr<<endl;
}
};
int main()
{
Base a("haha");
// std::cin.get();
getchar();
}

例3:同时有string和char*构造函数。对字符串初始化时,默认调用char*构造函数。如果是用string对象初始化时才用string构造函数。
#include<iostream>
#include<string>
using namespace std;
class Base
{
public:
Base(string str)
{
cout<<"string: "<<str<<endl;
}
Base(char* pstr)
{
cout<<"char*: "<<pstr<<endl;
}
};
int main()
{
Base a("haha");
string s="hello";
Base b(s);
// std::cin.get();
getchar();
}

本文通过三个示例探讨了C++中使用不同类型的构造函数(string和char*)来初始化类成员的方式。展示了如何根据传入参数的不同选择合适的构造函数进行实例化。
471

被折叠的 条评论
为什么被折叠?



