将撞错进行到底
[cpp]
/*
* 程序的版权和版本声明部分
* Copyright (c)2013, 烟台大学计算机学院学生
* All rightsreserved.
* 文件名称:score.cpp
* 作 者:张浩
* 完成日期:2013年3月22日
* 版本号: v1.0
* 输入描述: 撞错
* 问题描述:发现问题调试
* 输出: 写下改错的方法
*/
#include <iostream>
using namespace std;
class Student
{
public:
void set_data(int n,char *p, char s);
void display();
private:
int num;
int name[20];
char 易做图;
};
void Student::set_data(int n,char *p, char s)
{
num=n;
strcpy(name,p);
易做图=s;
}
void Student::display()
{
cout<<"num: "<<num<<endl;
cout<<"name:"<<name<<endl;
cout<<"易做图: "<<易做图<<endl;
}
int main()
{
Student stu1;
stu1.set_data(1,"he",'f');
stu1.易做图="m";
stu1.display();
return 0;
}
以上程序出现了三个错误:
1、error C2664: 'strcpy' : cannot convert parameter 1 from 'int [20]' to 'char *' strcpy不能把char型复制到int型 。
所以应将私有成员中的 int name[20]改成:char name[20]就可以了。。。。。
2、error C2248: '易做图' : cannot access private member declared in class 'Student' 不能调用 定义的Student类中的私有成员'易做图'
改错方法是将char 易做图 定义为共有成员即可。。。。
3、error C2440: '=' : cannot convert from 'char [2]' to 'char' 不能将字符串赋给数组
这样的错误只需将 stu1.易做图="m";中的双引号改为单引号即可。。。。
改错后的程序为:
[cpp]
#include <iostream>
using namespace std;
class Student
{
public:
void set_data(int n,char *p, char s);
void display();
char 易做图;
private:
int num;
char name[20];
};
void Student::set_data(int n,char *p, char s)
{
num=n;
strcpy(name,p);
易做图=s;
}
void Student::display()
{
cout<<"num: "<<num<<endl;
cout<<"name:"<<name<<endl;
cout<<"易做图: "<<易做图<<endl;
}
int main()
{
Student stu1;
stu1.set_data(1,"he",'f');
stu1.易做图='m';
stu1.display();
return 0;
}
运行结果:
心得体会:这样做不仅可以提高我的编程能力,还可以提高我的英语,一举两得,好!!!
补充:软件开发 , C++ ,