مقدار دادن به عناصر struct - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

مقدار دادن به عناصر struct

+1 امتیاز

سلام

در این کد چطور میتوان به عناصر struct مقدار داد؟ و به چه صورت میتوان به عناصر استراکت دسترسی داشت؟ یعنی مثلا چک کردن مقدار sId

struct service{
        int sandaliKhali, sID;
        string sMabda, sMaghsad;
        string sMoveHourMinute;
    };
    vector<struct service> srv;

و چطور میتوان از push_back استفاده کرد؟

این کد در قسمت protected  یک کلاس قرار  داره

سوال شده اردیبهشت 20, 1393  بوسیله ی moh3en (امتیاز 209)   15 28 40
دوباره تگ گذاری شد مهر 9, 1393 بوسیله ی BlueBlade
یعنی از خارج از کلاس؟ یا از داخل  کلاس از push_back استفاده کنی؟
نه میخوام داخل یکی از توابع خود کلاس از این استراکت استفاده کنم و همچنین تابع  کلاس دیگه ای که از کلاس قبلی به ارث رسیده

1 پاسخ

+2 امتیاز
 
بهترین پاسخ

زیاد با وقتی که خارج از کلاس باشی فرقی نداره 

یک مثال ساده شامل چیزایی که گفتی  :

#include <iostream>
#include <string>
#include <vector>
using namespace std;

class A
{
public:
    virtual  void set()
    {
        service s={1,2,"smabda","smaghsad","smoveHour"};
        srv.push_back(s);

        //ya

        service s2;
        s2.sandaliKhali=5;
        s2.sID=13;
        s2.sMabda="smabda";
        //va ...
        srv.push_back(s2);
    }
    void print()
    {
        for(const service& s:srv)
        {
            cout<<s.sID<<" "<<s.sandaliKhali<<"\n";
        }
    }

    bool check(int index)
    {
        if(srv[index].sID<100)
            return false;
        else
            return true;
    }

protected:
    struct service{
        int sandaliKhali, sID;
        string sMabda, sMaghsad;
        string sMoveHourMinute;
    };
    vector<struct service> srv;
};

class B: public A
{
public:
    void set()
    {
        A::set();//seda zadan set dakhel A
        service s3;
        s3.sID=34;
        //va ..
        srv.push_back(s3);
    }
};

int main()
{
    A a;
    a.set();
    a.print();
    cout<<a.check(1)<<"\n";

    cout<<"___________\n";

    B b;
    b.set();
    b.print();
}

 

پاسخ داده شده اردیبهشت 20, 1393 بوسیله ی BlueBlade (امتیاز 15,315)   15 18 89
انتخاب شد اردیبهشت 20, 1393 بوسیله ی moh3en
...