ورود

View Full Version : سوال: ایجاد نوع جدید



moonDark
سه شنبه 26 دی 1391, 23:12 عصر
سلام خدمت همه
میخاستم بدونم که چه طوری میشه یک نوع جدید عددی محدودتر درست کرد که فقظ بتونه اعداد 0 تا 255 رو نگه داره نه بیشتر و نه کمتر
مثلا برای یه نوع غیر عددی یه همچین چیزی مینویسم:
typedef class ntype {
ntype();
void foo();
}NTYPE;
ولی میخام که متغیر هایی که از این نوع هستن خاصیت set و get که توی C# هست رو داشته باشن مثلا باهاش بشه همچین کاری کرد:
NTYPE nt;
nt = 33;
int num = nt;
با C# خیلی راحت میشه این کارو کرد ولی C++ نمیدونم
اگه راهنمایی کنید خیلی ممنون میشم

Ananas
چهارشنبه 27 دی 1391, 00:22 صبح
سلام.
از نوع unsigned __int8 استفاده کنید.

moonDark
چهارشنبه 27 دی 1391, 22:00 عصر
مرسی ولی اگه میشه توضیح بدین چه طور میشه همچین نوعی رو خودم بسازم ممنون میشم

Ananas
چهارشنبه 27 دی 1391, 22:39 عصر
از typedef برای تعریف نوع جدید استفاده کنید. تو تعریف انواع جدید باید دقت کنید که باید با ترکیب انواعی که دارید این کار رو انجام بدید. پس می تونید برای تعریف یک نوع 8 بیتی از char هم استفاده کنید. مثال :

typedef char MY_INT_8;
typedef unsigned __int64 MY_INT_64;

moonDark
شنبه 30 دی 1391, 21:21 عصر
اینو خودم میدونم میخام یه نوع عددی داشته باشم که فقط اعداد ۰ تا ۲۵۵ بشه توش ذخیره کرد اگه کمتر یا بیشتر شد خطا بده یا یجوری مثل عدد صحیح سرریز کنه و بشه با تساوی مقدار دهیش کرد و یا مقدارو ازش گرفت مثل بقیه انواع

Ananas
دوشنبه 02 بهمن 1391, 17:44 عصر
کدوم رو خودت می دونی؟ همون چیزی که می خواید عرض کردم. نوع بدون علامت 8 بیتی که فقط اعداد 0 تا 255 رو میگیره و عدد دیگه هم بهش بدی اگه کامپایلر ارور نده سرریز میشه. پس دوباره جوابم unsigned __int8 هست.