第三周作业(一)

本文通过一个C++学生类的实例,介绍了正确的封装实践及常见错误,如直接访问私有成员变量、未指定作用域符及传参类型错误等。
#include <iostream>     
using namespace std;    
class Student        
{    
public:       
    void set_data(int n, char *p,char s);    
    void display( );    
private:     
    int num;    
    char 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 stud1,stud2;          
    stud1.set_data(1,"He",'f');    
    stud2.set_data(2,"She",'m');    
    stud1.display();    
    stud2.display();    
    return 0;    
}    
  
  
  
//找错误1:违反封装原则,直接给私有成员赋值,访问私有对象   
/*int main()   
{   
    Student stud1,stud2;    
    num=1; 
    name=she; 
    sex=m; 
    stud1.set_data(1,"He",'f');   
    stud2.set_data(2,"She",'m');   
    stud1.display();   
    stud2.display();   
    return 0;   
}   
--------------------Configuration: 1 - Win32 Debug-------------------- 
Compiling... 
1.cpp 
C:\Documents and Settings\user\桌面\程序设计\1.cpp(29) : error C2065: 'num' : undeclared identifier 
C:\Documents and Settings\user\桌面\程序设计\1.cpp(30) : error C2065: 'name' : undeclared identifier 
C:\Documents and Settings\user\桌面\程序设计\1.cpp(30) : error C2065: 'she' : undeclared identifier 
C:\Documents and Settings\user\桌面\程序设计\1.cpp(31) : error C2065: 'sex' : undeclared identifier 
C:\Documents and Settings\user\桌面\程序设计\1.cpp(31) : error C2065: 'm' : undeclared identifier 
Error executing cl.exe. 
 
1.obj - 5 error(s), 0 warning(s)*/  
  
  
//在实现对类成员函数时不指定作用域   
/*void 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;      
}    
--------------------Configuration: 1 - Win32 Debug-------------------- 
Compiling... 
1.cpp 
C:\Documents and Settings\user\桌面\程序设计\1.cpp(16) : error C2065: 'num' : undeclared identifier 
C:\Documents and Settings\user\桌面\程序设计\1.cpp(17) : error C2065: 'name' : undeclared identifier 
C:\Documents and Settings\user\桌面\程序设计\1.cpp(18) : error C2065: 'sex' : undeclared identifier 
Error executing cl.exe. 
 
1.obj - 3 error(s), 0 warning(s)*/  
  
  
//调用stud1.set_data()函数时,实参出现不当类型:   
/*int main()   
{   
    Student stud1,stud2;    
     
    stud1.set_data(1,"He",'f');   
    stud2.set_data(x,"She",'m');   
    stud1.display();   
    stud2.display();   
    return 0;   
}   
--------------------Configuration: 1 - Win32 Debug-------------------- 
Compiling... 
1.cpp 
C:\Documents and Settings\user\桌面\程序设计\1.cpp(31) : error C2065: 'x' : undeclared identifier 
Error executing cl.exe. 
 
1.obj - 1 error(s), 0 warning(s)*/  


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值