Thân chào mọi người, hiện tại em đang học c++ theo các bài hướng dẫn của anh Lê Trần Đạt, tới bài về link list thì không chạy được nên muốn hỏi ạ.
Trước hết em đưa code của mình để mọi người xem sai chỗ nào giúp em sửa với. Máy thì báo là: “No matching function for call to 'sinhvien::sinhvien(int,const char[5], int” em chẳng hiểu gì luôn.
code của em
sinhvien.h:
#ifndef SINHVIEN_H
#define SINHVIEN_H
#include <string>
class sinhvien
{
public:
void sinhvien();
void createnamesv();
protected:
private:
int mssv_;
std:: string name_;
sinhvien*next_;
};
#endif //
sinhvien.cpp:
#include "sinhvien.h"
#include <string>
sinhvien::sinhvien(int mssv,const std::string &name,sinhvien*const next_=0)
{
mssv_=mssv;
name_=name;
Sinhvien*next_=next;
}
string createnamesv(int n)
{
return "sv"+"n";
}
main.cpp:
#include <iostream>
#include <string>
#include "sinhvien.h"
using namespace std;
int main()
{
sinhvien*first=new sinhvien(1,"sv 1",0);
Sinhvien*currentsv=first;
for(int i=2;i<5;i++)
{
std::string namesv=createnamesv(i);
Sinhvien*NewSV=(i,namesv,0);
currentsv->setnext(NewSV);
currentsv=NewSV;
}
return 0;
}
Nói chung bài này em cũng không hiểu lắm nên code sai chắc cũng nhiều. Có gì mọi người giúp em với ạ. Ngoài ra em thắc mắc xíu: tại sao phải khai báo là const std::string &name mà không khai báo thẳng là string name, cũng như tại sao là const next ạ?
Em xin cảm ơn.
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?