PDA

View Full Version : کلاس اشکال هندسی با استفاده از شی گرایی/HELP



mra_chavoshi
شنبه 17 خرداد 1393, 12:30 عصر
سلام دوستان برنامه ای هست که گیر کردم روش ، در مورد اشکال هندسی و شی گرایی یه کلاس پایه برای کل اشکال داره-بعد 2تا کلاس واسه اشکال چند ضلعی و بدون ضلع داره که هر کدوم جدا باید تعریف بشه [LEFT]تا اینجا کلاس پایه و کلاس چند ضلعی و مربع هست. روی دایره و لوزی و ذوزنقه و کلاس پایه بدون ضلع گیر کردم [CODE]#include #include class shap { protected: float calculates() {cout

mra_chavoshi
شنبه 17 خرداد 1393, 13:03 عصر
[QUOTE=mra_chavoshi;2037816]
سلام دوستان برنامه ای هست که گیر کردم روش ، در مورد اشکال هندسی و شی گرایی یه کلاس پایه برای کل اشکال داره-بعد 2تا کلاس واسه اشکال چند ضلعی و بدون ضلع داره که هر کدوم جدا باید تعریف بشه

تا اینجا کلاس پایه و کلاس چند ضلعی و مربع هست. روی دایره و لوزی و ذوزنقه و کلاس پایه بدون ضلع گیر کردم

#include<stdio.h>
#include<string.h>
class shap {
protected:
float calculates() {cout<< "this is a s";}
float calculkatep() {cout<< "this is a p;}

};

class polyggon: public shap {
protected :
int num;
polyggon (int i, char*s){num=i;cout<<"s";}
};

class non_polyggon: public shap {
public:

};

class square: public p {
public:
square (int i):polyggon (i,"this is a square"){}
float calculatep(){p=num*4;};
float calculates(s=num*num;};
};

class Trapezoid: public p {
public:

};

class sircle : public np {
public:

};

class oval : public np {
public:

};

void main() {
squae s(5);
cout.calculatep();

}

mra_chavoshi
شنبه 17 خرداد 1393, 14:22 عصر
مثلا وی مربع فقط یک ضلع نیاز بود. اما ذوزنقه کلی ورودی داره. از اون کلاسی که ارث میبره و خودش چطور باید این تغییر کنه که 5 6 تا ورودی بتونه بگیره

mra_chavoshi
شنبه 17 خرداد 1393, 19:41 عصر
:تشویق:ماشالا..

omid_kma
شنبه 17 خرداد 1393, 20:05 عصر
خب این p ,np این چی هستن ؟
میتونی وقتی که inherit کردی برای گرفتن ورودی بیشتر constructor رو عوض کنی .
یا مثلا برای n ضلعی از variadic template استفاده کنی.
ضمنا کد رو بزار داخل تگ c++ که قابل خوندن باشه .

omid_kma
شنبه 17 خرداد 1393, 20:07 عصر
در ضمن توی C++‎‎ ما void main نداریم درستش int main هستش

mra_chavoshi
دوشنبه 19 خرداد 1393, 13:36 عصر
p همون polyggon و np هم non_Polyggon که اشکال با ضلع و بدون ضلع هستن

این variadic template که گفتیه نگفته به ما

همین استفاده از کانستراکتور مشکل اصلیه

من زیاد برنامه نویسی حالیم نمیشه- اما همینو فردا میخواد سر امتحان بده

mra_chavoshi
دوشنبه 19 خرداد 1393, 13:38 عصر
درسشم شی گراییه

omid_kma
دوشنبه 19 خرداد 1393, 15:16 عصر
p همون polyggon و np هم non_Polyggon که اشکال با ضلع و بدون ضلع هستن

این variadic template که گفتیه نگفته به ما

همین استفاده از کانستراکتور مشکل اصلیه

من زیاد برنامه نویسی حالیم نمیشه- اما همینو فردا میخواد سر امتحان بده

خب به نظرت کامپایلر میتوننه ذهن آدما رو بخونه بعد تشخیص بده p همون polyggon هستش ؟!
من نمی فهمم این چه جور کدیه توی نوتپد نوشته شده ؟

این یک مثال ساده که کار هم می کنه :‌

#include <iostream>
using namespace std;
class shape {
protected:
virtual float calculates()=0;
virtual float calculatep()=0;
};


class polyggon: public shape {
protected :
int num;
polyggon (int i, char*s){num=i;cout<<s;}


};


class non_polyggon: public shape {
public:
};


class square: public polyggon {
public:
square (int i):polyggon (i,"this is a square"){}
float calculatep(){return num*4;}
float calculates(){return num*num;}
};




class circle : public non_polyggon {
public:
int r;
circle(int R):R(r)
{}
float calculatep(){return 2*r*3.14;}
float calculates(){return r*r*3.14;}
};




int main() {
square s(5);
cout<<s.calculatep();


}

mra_chavoshi
دوشنبه 19 خرداد 1393, 15:53 عصر
آره توی نود پد نوشتم.. کلا به کامپایلر نمیرسه مهم مفهوم شی گراییه

الان شما کلاس دایره رو خوب نوشتی ولی کلاس پایه ی دایره رو تعریف نکردی که فکر کنم اینطوری میشه





class non_polyggon: public shape {
protected:
int r;
public:
non_polyggon (int R, char*s){r=R,cout<<s;}

};

mra_chavoshi
دوشنبه 19 خرداد 1393, 15:56 عصر
هم مربع هم دایره یه متغیر میخواد
ولی مثلا لوزی 2تا میخواد که یکی افقی یکی عمودی

یا ذوزنقه که قراره سر امتحان بده 5 یا 6 تا متغیر میخواد

کلاس پایه ی اینا باید ثابت باشه. یعنی الان اگه برای ذوزنقه کلاس بنویسمو از کلاس پولیگون بهش ارث بدم متغیر کم میاره یا اصن نمیدونم چی میشه واقعا

omid_kma
دوشنبه 19 خرداد 1393, 18:33 عصر
والا من که نفهمیدم چی گفتی
لوزی خودش زیر مجموعه متوازی الاضلاع میشه
چند ضلعی میتونه یک vector یا یک آرایه از اضلاع به عنوان ورودی می گیره .
مشکل الان چیه ؟

mra_chavoshi
دوشنبه 19 خرداد 1393, 19:50 عصر
الان مشکل اینه که کلا بفیشو نمیدونم چی بنویسم

برای ذوزنقه و لوزی رو