c++对象模拟游戏数据

    xiaoxiao2026-09-30  7

    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"); }

    转载请注明原文地址: https://ju.6miu.com/read-1312493.html
    最新回复(0)