尝试调用构造函数,收到"no matching function call"编译错误
Trying to call constructor, receiving "no matching function call" compilation error
我目前正在创建一个名为OOP学生负责人的程序。 该程序应该打开一个文件,读取信息,通过类发送信息并正确显示结果。我目前正在从主要手动创建信息作为测试。
这是我的代码:
主.cpp
#include <iostream>
#include <string>
#include <fstream>
#include "School_Academics.h"
using namespace std;
int main(){
School_Academics n;
Name name = Name("jack", "lopez");
Address address = Address("123 some street", "Apt. A", "somecity", "somestate","somezipcode");
Date dob = Date("01", "12", "1990");//date of birth
Date dog = Date("07", "11", "2014");//date of graduation
School_Academics acad = School_Academics("3.64", "25", dog);
cout<<n.getStudent()<<endl;
Student n2 = Student(name, address, dob, acad);
cout<<n2.getStudent();
}
学生.h
#ifndef STUDENT_H_INCLUDED
#define STUDENT_H_INCLUDED
#include "Address.h"
#include "School_Academics.h"
#include "Name.h"
#include "Date.h"
using namespace std;
class Student{
private:
Name name;
Address address;
Date dob;
School_Academics acad;
public:
Student();
Student(Name name, Address address, Date dob, School_Academics acad);
string getStudent();
};
#endif // STUDENT_H_INCLUDED
学生.cpp
#include <string>
#include <iostream>
#include <cstdlib>
#include <fstream>
#include "Student.h"
using namespace std;
Student::Student(){
name = Name("","");
address = Address("","","","","");
dob = Date("0","0","0");
acad = School_Academics("0","0","0");
}
Student::Student(Name name, Address address, Date dob, School_Academics acad){
Student::name = name;
Student::address = address;
Student::dob = dob;
Student::acad = acad;
}
string Student::getStudent(){
name.getName();
address.getAddress();
acad.getSchool_Academics();
dob.getDate();
}
School_Academics.cpp
#include <string>
#include <iostream>
#include <cstdlib>
#include <sstream>
#include "School_Academics.h"
School_Academics::School_Academics(){
GPA = "0";
credits = "0";
Date DOG = Date("0","0","0");
}
School_Academics:: School_Academics(string GPA, string credits, Date DOG){
School_Academics::GPA = GPA;
School_Academics::credits = credits;
School_Academics::DOG = DOG;
}
string School_Academics::getSchool_Academics(){
stringstream ss;
ss <<"School Academics: GPA: "<<GPA<<" credits: "<<credits<<" Graduate: "<<DOG.getDate()<<endl;
return ss.str();
}
日期.cpp
#include <iostream>
#include <string>
#include <cstdlib>
#include <sstream>
#include "Date.h"
using namespace std;
Date::Date(){
day = "0";
month = "0";
year = "0";
}
Date::Date(string day, string month, string year){
Date::day = day;
Date::month = month;
Date::year = year;
}
string Date::getDate(){
stringstream ss;
ss <<"Date: "<< day << "/" << month << "/" << year << endl;
return ss.str();
}
问题:
我目前在从main.cpp
发送信息并通过Student.cpp
传递信息并让class Student{};
从Date.cpp
获取信息时遇到问题。
收到的错误:
|13|error: no matching function for call to 'School_Academics::School_Academics(const char [1], const char [1], const char [1])'|
如果您能帮助我解决错误。提前谢谢你。
错误来自您的学生 ctor 您有以下内容
acad = School_Academics("0","0","0");
未定义具有 3 个字符的School_Academics
ctor。这会导致错误。
您可能打算传递上面创建的日期:
Student::Student(){
name = Name("","");
address = Address("","","","","");
dob = Date("0","0","0");
acad = School_Academics("0","0",dob);
// or acad = School_Academics("0","0",date());
}
相关文章:
- "error: no matching function for call to"构造函数错误
- 调用专用模板时出错"no matching function for call to [...]"
- "no matching function for call to 'Vector::Vector'"错误
- 我在 ifstream input_file(文件名)行中收到错误"no matching function to call";
- 为什么当我在 std::string 中打开文件名的 fstream 时出现"no matching function"错误?
- 从 TVector2 类派生复杂类:"No matching function for call to Complex::Complex()"
- 学习 c++,编译错误"no matching function for call"
- C++ "error: no matching function"
- 结构错误:"no matching function for call to "
- 创建函数变体向量时"No matching function for call"错误
- 为什么"std::isdigit"在 Windows 上报告C++"no matching overloaded function"
- 编译时二叉搜索树错误的反向迭代器表示"no matching function call for operator=()"
- 如果子类中没有构造函数方法,则错误"no matching function for call to 'LGame::LGame(String&)'"
- 提升多精度浮点数128:标准::exp错误:'no matching function for call'
- "error: no matching function for call to",我无法更改结构的定义
- 替换派生对象向量中的对象"no matching function to call"
- 我的程序显示许多错误,"error: no matching function for call to 'getPercentScore'"
- 为什么有一个指向此代码行(第 7 行)的"no matching call for function"错误?
- 调用模板函数的问题"No matching function for call"参数:迭代器、对象函数
- 尝试在矢量上使用擦除功能时"no matching function for call"