C++出现没有可调用的构造函数有关问题
C++出现没有可调用的构造函数问题
参照课本来写的啊
//11.h
#include<iostream>
using namespace std;
class Subjects
{
public:
string stuName;//课程名称
double stuScore;//成绩
Subjects *next;
Subjects(const string &, Subjects* );
Subjects(Subjects* );
//获取课程名称
string getName();
//获取课程成绩
double getScore();
};
//11.cpp
#pragma once
#include"11.h"
#include<string>
Subjects::Subjects(const string &StuName, Subjects*nextval=NULL )
{
stuName = StuName;
next = nextval;
stuScore = 0;
}
Subjects:: Subjects(Subjects* nextval = NULL)
{
next = nextval;
}
//获取课程名称
string Subjects::getName()
{
return stuName;
}
//获取课程成绩
double Subjects:: getScore()
{
return stuScore;
}
//22.h
#pragma once
#include"11.h"
//单向链表,存储所有课程信息
class SubjectLists
{
private:
Subjects* head;//链表头
Subjects* tail;//链表尾
Subjects* fence;//当前结点
int leftcnt;//左结点数
int rightcnt;//右结点数
//初始化
void init() ;
};
//22.cpp
#pragma once
#include"11.h"
#include"22.h"
#include<string>
//初始化
void SubjectLists:: init() {
fence = tail = head = new Subjects;
leftcnt = rightcnt = 0;
}
错误 1 error C2512: “Subjects”: 没有合适的默认构造函数可用
------解决方案--------------------
参照课本来写的啊
//11.h
#include<iostream>
using namespace std;
class Subjects
{
public:
string stuName;//课程名称
double stuScore;//成绩
Subjects *next;
Subjects(const string &, Subjects* );
Subjects(Subjects* );
//获取课程名称
string getName();
//获取课程成绩
double getScore();
};
//11.cpp
#pragma once
#include"11.h"
#include<string>
Subjects::Subjects(const string &StuName, Subjects*nextval=NULL )
{
stuName = StuName;
next = nextval;
stuScore = 0;
}
Subjects:: Subjects(Subjects* nextval = NULL)
{
next = nextval;
}
//获取课程名称
string Subjects::getName()
{
return stuName;
}
//获取课程成绩
double Subjects:: getScore()
{
return stuScore;
}
//22.h
#pragma once
#include"11.h"
//单向链表,存储所有课程信息
class SubjectLists
{
private:
Subjects* head;//链表头
Subjects* tail;//链表尾
Subjects* fence;//当前结点
int leftcnt;//左结点数
int rightcnt;//右结点数
//初始化
void init() ;
};
//22.cpp
#pragma once
#include"11.h"
#include"22.h"
#include<string>
//初始化
void SubjectLists:: init() {
fence = tail = head = new Subjects;
leftcnt = rightcnt = 0;
}
错误 1 error C2512: “Subjects”: 没有合适的默认构造函数可用
------解决方案--------------------
- C/C++ code
Subjects(Subjects*); //====>Subjects(Subjects* nextval = NULL) Subjects:: Subjects(Subjects* nextval = NULL) { next = nextval; } 改为 Subjects:: Subjects(Subjects* nextval) { next = nextval; }