c++对象模拟游戏数据

来源:互联网 发布:gsk数控机床仿真软件 编辑:程序博客网 时间:2024/06/04 18:53

C中的结构体存在缺点:1.main函数中的任意赋值语句都可以访问结构体中的成员,但在现实生活中并不是什么数据都可以被随意访问的,因此C语言中的结构体的数据是不安全的;2.结构体中的数据和对该数据的操作是分离的,并不是一个被封装起来的整体,因此使程序难以重用,影响了软件生产效率;于是C++中引入了类的概念。

  C++中类的一般格式为:

class Kid

{

  private:

    int age;    //私有成员

    char *name;

    char *sex;

  public:      //公有成员

    void setKid(int age,char *name,char *sex);

    void showKid();

};

C++中规定如果没有对类的成员加私有private,保护protected,或公有public,则默认为私有的。而对于C++的结构体来说,成员可以是私有的,保护的或公有的,但默认为公有的;还有要注意的是不能在类的声明中给数据成员赋值,比如:

class Kid

{

  private :

    int age=10;

    char *name="rookie_j";

    char *sex="男";

};

  一般情况下,一个类的数据成员应该声明为私有的,成员函数声明为共有的。这样,内部的数据隐藏在类中,在类的外部无法访问直接访问,使数据得到有效的保护。而公有的成员函数就成为一种与类外部沟通的接口。

利用C++对象模拟游戏商城的数据(代码如下):

#include <iostream>using namespace std;int i,j;class ltem{public:int wpjg;char sfgm[20];private:};class list{public:void abc(ltem a);void abc1(ltem a);void abc2(ltem a);void abc3(ltem a);char a1[20];private:};void list::abc(ltem a){a.wpjg=2000;sprintf(a.sfgm,"是否购买:\n1.是  2.否\n");cout<<a.wpjg<<"\n"<<endl;cout<<a.sfgm<<"\n"<<endl;scanf("%d",&i);if(i==1){cout<<"购买成功\n"<<endl;}else{cout<<"欢迎下次再来\n"<<endl;}}void list::abc1(ltem a){a.wpjg=12888;sprintf(a.sfgm,"是否购买:\n1.是  2.否\n");cout<<a.wpjg<<"\n"<<endl;cout<<a.sfgm<<"\n"<<endl;scanf("%d",&i);if(i==1){cout<<"购买成功\n"<<endl;}else{cout<<"欢迎下次再来\n"<<endl;}}void list::abc2(ltem a){a.wpjg=12888;sprintf(a.sfgm,"是否购买:\n1.是  2.否\n");cout<<a.wpjg<<"\n"<<endl;cout<<a.sfgm<<"\n"<<endl;scanf("%d",&i);if(i==1){cout<<"购买成功\n"<<endl;}else{cout<<"欢迎下次再来\n"<<endl;}}void main(){list n1,n2,n3,n4,n5,n6,n7,n8,n9;ltem i1,i2,i3,i4,i5,i6,i7,i8,i9;sprintf(n1.a1,"1.求婚戒指\n");sprintf(n2.a1,"2.凌霜锦袍\n");sprintf(n3.a1,"3.傲雪锦衣\n");cout<<n1.a1<<"\n"<<endl;cout<<n2.a1<<"\n"<<endl;cout<<n3.a1<<"\n"<<endl;printf("输入你想要购买的编号");scanf("%d",&j);switch(j){case 1:n1.abc(i1);break;case 2:n2.abc1(i2);break;case 3:n3.abc2(i3);break;default:printf("输入有误");break;}system("pause");}

1 0
原创粉丝点击