C++ 对构造函数没有匹配的函数调用 #包括 使用名称空间std; 模板 阶级人士{ 公众: 虚空插入(T项)=0; 虚拟T show()=0; }; 类名 { 私人: 字符串fname; 字符串名称; 公众: 名称(第一个字符串,最后一个字符串); //布尔运算符==(名称和p1,名称和p2) }; 名称::名称(先字符串,后字符串){ fname=第一; lname=最后一个; } 模板 类别人士:公众人士 { 私人: Tα[1]; 整数大小; 公众: 人(); 虚拟空位插入(T信息); 虚拟T-show(); }; 模板 person::person(){ 尺寸=0; } 模板 作废人员::插入(T信息){ a[0]=信息; } 模板 T person::show(){ 返回[0]; } int main(){ 先串(“朱莉娅”),后串(“罗伯特”); 姓名(第一名,最后一名); 人*aPerson=新人(); aPerson->插入(温度); cout show()
C++ 对构造函数没有匹配的函数调用 #包括 使用名称空间std; 模板 阶级人士{ 公众: 虚空插入(T项)=0; 虚拟T show()=0; }; 类名 { 私人: 字符串fname; 字符串名称; 公众: 名称(第一个字符串,最后一个字符串); //布尔运算符==(名称和p1,名称和p2) }; 名称::名称(先字符串,后字符串){ fname=第一; lname=最后一个; } 模板 类别人士:公众人士 { 私人: Tα[1]; 整数大小; 公众: 人(); 虚拟空位插入(T信息); 虚拟T-show(); }; 模板 person::person(){ 尺寸=0; } 模板 作废人员::插入(T信息){ a[0]=信息; } 模板 T person::show(){ 返回[0]; } int main(){ 先串(“朱莉娅”),后串(“罗伯特”); 姓名(第一名,最后一名); 人*aPerson=新人(); aPerson->插入(温度); cout show(),c++,c++11,constructor,C++,C++11,Constructor,name没有默认构造函数,因此无法使用新人对其进行初始化。解决此问题的最简单方法是为name添加默认构造函数: #include <iostream> using namespace std; template<class T> class people{ public: virtual void insert(T item)=0; virtual T show()=0; }; class name { private: st
name
没有默认构造函数,因此无法使用新人对其进行初始化。解决此问题的最简单方法是为name
添加默认构造函数:
#include <iostream>
using namespace std;
template<class T>
class people{
public:
virtual void insert(T item)=0;
virtual T show()=0;
};
class name
{
private:
string fname;
string lname;
public:
name(string first, string last);
// bool operator== (name & p1, name &p2)
};
name::name(string first, string last){
fname = first;
lname = last;
}
template <class T>
class person : public people<T>
{
private:
T a[1];
int size;
public:
person();
virtual void insert(T info);
virtual T show();
};
template<class T>
person<T>::person(){
size = 0;
}
template<class T>
void person<T>::insert(T info){
a[0] =info;
}
template <class T>
T person<T>::show(){
return a[0];
}
int main(){
string first("Julia"), last("Robert");
name temp(first,last);
people<name>* aPerson = new person<name>();
aPerson-> insert(temp);
cout << aPerson->show() << endl;
return 0;
}
问题2:你没有重载你显然没有合适的类名称的默认构造函数!只要阅读编译器告诉你的内容…你应该得到一个很好的教程,而不是通过这里…顺便说一句,你应该显式地包含
头。不能保证包含.下一个问题是,没有合适的operator@user2972206问题是:您的名称类没有名称。新错误:“std::ostream&name::operator”
name() { }; //add this to name under public: of course
friend std::ostream& operator<<(std::ostream& stream, const name &nm); //Inside name class
std::ostream& operator<<(std::ostream& stream, const name &nm){ //OUTSIDE of name
stream << nm.fname << " " << nm.lname << std::endl;
return stream;
}