一个改错题,求帮助

C++语言 码拜 9年前 (2016-04-03) 1253次浏览
这是原题

#include<iostream>
using namespace std;
class Student{
  private:
	int sno;
	int age;
  public:
	  Student(int sno1, int age1);
	  void show();
      void setSno(int d);
};
void Student::show(Student &stu){
	cout<<"\nSno is "<<Stu.sno<<",";
	cout<<"age is "<<Stu.age<<","<<endl;
}
void setSno(int s){
	Stu.sno = s;
}
void setAge(int a){
	Stu.age = a;
}
void printStu(){}
int main(){
	Student stu("20021","20");
	Stu.showdata();
	return 0;
}

这是本人修改过后的

#include<iostream>
using namespace std;
class Student{
  private:
	int sno;
	int age;
  public:
	  Student(int sno1, int age1);
	  void show();
      void setSno(int d);
};
void Student::show(Student &stu){
	cout<<"\nSno is "<<Stu.sno<<",";
	cout<<"age is "<<Stu.age<<","<<endl;
}
void setSno(int s){
	Stu.sno = s;
}
void setAge(int a){
	Stu.age = a;
}
void Student::student(){}
int main(){
	Student stu("20021","20");
	Stu.showdata();
	return 0;
}

本人这样的思路对吗,本人改了一部分还是有错,有谁能详细讲解一下吗?
下面是错误:
(12) : error C2511: “show” : overloaded member function “void (class Student &)” not found in “Student”
(3) : see declaration of “Student”
(17) : error C2065: “Stu” : undeclared identifier
(17) : error C2228: left of “.sno” must have class/struct/union type
(20) : error C2228: left of “.age” must have class/struct/union type
(24) : error C2664: “__thiscall Student::Student(int,int)” : cannot convert parameter 1 from “char [6]” to “int”
This conversion requires a reinterpret_cast, a C-style cast or function-style cast
(25) : error C2228: left of “.showdata” must have class/struct/union type

解决方案

20

好多错误啊。

#include<iostream>
using namespace std;
class Student{
  private:
	int sno;
	int age;
  public:
	  Student(int sno1, int age1):sno(sno1),age(age1){}
	  void show();
      void setSno(int d);
	  void setAge(int d);
};
void Student::show(){
	cout<<"\nSno is "<<this->sno<<",";
	cout<<"age is "<<this->age<<","<<endl;
}
void Student::setSno(int s){
	this->sno = s;
}
void Student::setAge(int a){
	this->age = a;
}
int main(){
	Student stu(20021,20);
	stu.show();
	return 0;
}

20

这样就行了

#include<iostream>
using namespace std;
class Student{
	int sno;
	int age;
public:
	void printStu();
	void setSno(int d);
	void setAge(int d);
};
void Student::printStu(){
	cout<<"\nSno is "<<sno<<",";
	cout<<"age is "<<age<<","<<endl;
}
void Student::setSno(int s)
{sno = s;}
void Student::setAge(int a)
{age = a;}
int main(){
	Student lin;
	lin.setSno(20021);
	lin.setAge(20);
	lin.printStu();
}

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明一个改错题,求帮助
喜欢 (0)
[1034331897@qq.com]
分享 (0)