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 عصر
الان مشکل اینه که کلا بفیشو نمیدونم چی بنویسم
برای ذوزنقه و لوزی رو
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.