程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 將撞錯進行到底

將撞錯進行到底

編輯:C++入門知識

[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 sex;   };   void Student::set_data(int n,char *p, char s)   {       num=n;       strcpy(name,p);       sex=s;   }   void Student::display()   {       cout<<"num: "<<num<<endl;       cout<<"name:"<<name<<endl;       cout<<"sex: "<<sex<<endl;   }   int main()   {       Student stu1;       stu1.set_data(1,"he",'f');       stu1.sex="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: 'sex' : cannot access private member declared in class 'Student'     不能調用  定義的Student類中的私有成員'sex' 改錯方法是將char sex 定義為共有成員即可。。。。 3、error C2440: '=' : cannot convert from 'char [2]' to 'char'      不能將字符串賦給數組  這樣的錯誤只需將 stu1.sex="m";中的雙引號改為單引號即可。。。。    改錯後的程序為: [cpp]  #include <iostream>   using namespace std;   class Student   {   public:       void set_data(int n,char *p, char s);       void display();       char sex;   private:       int num;       char name[20];   };   void Student::set_data(int n,char *p, char s)   {       num=n;       strcpy(name,p);       sex=s;   }   void Student::display()   {       cout<<"num: "<<num<<endl;       cout<<"name:"<<name<<endl;       cout<<"sex: "<<sex<<endl;   }   int main()   {       Student stu1;       stu1.set_data(1,"he",'f');       stu1.sex='m';       stu1.display();       return 0;   }   運行結果: 心得體會:這樣做不僅可以提高我的編程能力,還可以提高我的英語,一舉兩得,好!!!  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved