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”: 没有合适的默认构造函数可用



------解决方案--------------------
C/C++ code

Subjects(Subjects*);    //====>Subjects(Subjects* nextval = NULL) 
Subjects:: Subjects(Subjects* nextval = NULL)  
{
    next = nextval;
}
改为
Subjects:: Subjects(Subjects* nextval)  
{
    next = nextval;
}