PDA

View Full Version : سوال: تعریف ثابت از نوع کلاس



hajizadeh.m
پنج شنبه 10 فروردین 1391, 00:50 صبح
سلام دوستان
من یه کلاس برای اعمال روی اعداد اعشاری نوشتم که داخل کانستراکتورش دو عدد واسه صورت و مخرج کسر میگیره.
حالا میخوام بدون اینکه از فایل دیگری استفاده کنم به جز همین .h و .cpp که کلاس رو تعریف کردم ؛ یه ثابت از همین نوع کلاس برای عدد 1/2 بسازم.
لطفا راهنمایی کنید.
ممنون

MAN_UNITED
پنج شنبه 10 فروردین 1391, 01:58 صبح
خوب از کلمه const استفاده کن
اینجوری
اگه اسم کلاس Ratio باشه
const Ratio a(1,2)

hajizadeh.m
پنج شنبه 10 فروردین 1391, 11:16 صبح
خب همین رو کجا باید بنویسم.داخل کلاس؛قبل کلاس یا توی یه فایل دیگه؟
(من مجاز به استفاده یا ساختن فایل های دیگه هستم اما از خود main که توش میخوان از این ثابت استفاده کنن نمیتونم برای تعریف ثابت استفاده کنم)
ممنون

MAN_UNITED
پنج شنبه 10 فروردین 1391, 20:53 عصر
کلا وقتی می خوایی یک شی تعریف کنی باید بیرون اون کلاس باشه و توی تابع اصلی یا main باشه
حالا من منظورت و از این جمله نفهمیدم

(من مجاز به استفاده یا ساختن فایل های دیگه هستم اما از خود main که توش میخوان از این ثابت استفاده کنن نمیتونم برای تعریف ثابت استفاده کنم)

hajizadeh.m
جمعه 11 فروردین 1391, 23:34 عصر
قصد پروژه اینه که با هر فایل main که استاد قرار دادو کلاس ما رو include کرد پروژه کار کنه.
واسه همین من باید از همون فایل کلاس یا یه فایل .h یا .cpp دیگه استفاده کنم.حالا موندم کجا این رو بنویسم تا توی main شناخته بشه چون الان هرجا رو که امتحان کردم خطا میده که این ثابت رو نمشناسه.
ممنون میشم کمک کنید

rezaricky
دوشنبه 14 فروردین 1391, 01:16 صبح
من یک مثال براتون میزنم

فایل lib.h

class MyClass {
public:
MyClass();
void foo();
// ...
};

extern MyClass MyClassInstance;


فایل lib.cpp

#include "lib.h"



MyClass::MyClass()
{
// ...
}
void MyClass::foo()
{
//....
}

MyClass MyClassInstance;


و فایل اصلی برنامه که تابع main داخل ان تعریف شده است :

#include <iostream>
#include "lib.h"

using namespace std;

int main()
{
MyClassInstance.foo();
return 0;
}



تو این برنامه من یک کلاس با نام MyClass تعریف کردم و یک شی از اون با نام MyClassInstance ایجاد کردم ، حالا هر جا فایل lib.h رو include کنم میتونم هم از کلاس و هم از شی MyClassInstance استفاده کنم، که کدش رو میبینی