انجمن‌های فارسی اوبونتو

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید


ارائه ۲۴٫۱۰ اوبونتو منتشر شد 🎉

نویسنده موضوع: c++ و ایجاد فایل های هدر .h  (دفعات بازدید: 23459 بار)

0 کاربر و 1 مهمان درحال مشاهده موضوع.

آفلاین parsibox

  • Hero Member
  • *
  • ارسال: 777
  • جنسیت : پسر
  • آچار فرانسه
    • سایت شخصی محسن داوری
c++ و ایجاد فایل های هدر .h
« : 15 آذر 1388، 07:50 ب‌ظ »
 سلام
این فایل های .h چجوری ساخته میشن؟
من یه فایل c++ که مینویستم چجوری باید براش فایل .h بسازم؟
از netbeans استفاده میکنم
http://forum.ubuntu.ir/index.php/topic,12830.0.html
http://forum.ubuntu.ir/index.php/topic,12928.new.htm
http://forum.ubuntu.ir/index.php/topic,12151.0.html
توجه : کلیه ی کاربران لینوکس در اصفهان که متقاضی شارژ یا راه اندازی ADSL پیشگامان یا صبانت هستند میتوانند از طریق ما 5% تخفیف بگیرند

آفلاین iCEAGE

  • Sr. Member
  • *
  • ارسال: 399
  • جنسیت : پسر
  • Life is Free and Beautiful
    • وبلاگ شخصی من
پاسخ به: c++ و ایجاد فایل های هدر .h
« پاسخ #1 : 15 آذر 1388، 11:13 ب‌ظ »
تا اونجا که یادمه در سی پلاس پلاس، ما دارای یک سری فایل با پسوند h. هستیم که معمولا تعریف کلاس‌ها در این فایل‌ها قرار میگیره و  بدنه توابع کلاست در یک فایل مشابه اسم فایل h. با این تفاوت که پسوندش cpp. است، قرار می‌گیرد. خوب طبیعتا یک فایل main.cpp داری که میتونی اون فایل header رو include کنی و از اون در main شی بسازی و استفاده کنی.
در IDEهای مختلف وقتی یک پروژهٔ جدید درست می‌کنی بسته به نوع پروژه میتونه یک پروژه GUI باشه که طبیعتا یک سری فایل برای تو درست می‌کنه یا این که پروژهٔ خالی باشه که باید خودت به پروژت فایل اضافه کنی. اکثر IDEها برای اضافه کردن یک کلاس جدید یک ویزارد دارند که وقتی به وسیله اون ویزارد کلاس درست میکنی دو تا فایل برات درست میکنه که هم‌نام هستند اما با پسوندهای مختلف که یکی h. و دیگری cpp.
طبیعتا در netbeans هم دارای اینچنین فرآیندی هستید.
People said I should accept the world. Bullshit! I don't accept the world. Richard Stallman
زندگی آزاد

آفلاین parsibox

  • Hero Member
  • *
  • ارسال: 777
  • جنسیت : پسر
  • آچار فرانسه
    • سایت شخصی محسن داوری
پاسخ به: c++ و ایجاد فایل های هدر .h
« پاسخ #2 : 15 آذر 1388، 11:25 ب‌ظ »
یعنی محتویات داخل فایل .h را خود ide میسازه؟
یا اینکه خودم باید بنویسم؟
اگه باید خودم بنویسم چیا را باید بنویسم؟
توی ide باید چیا بزنم که بسازه؟
http://forum.ubuntu.ir/index.php/topic,12830.0.html
http://forum.ubuntu.ir/index.php/topic,12928.new.htm
http://forum.ubuntu.ir/index.php/topic,12151.0.html
توجه : کلیه ی کاربران لینوکس در اصفهان که متقاضی شارژ یا راه اندازی ADSL پیشگامان یا صبانت هستند میتوانند از طریق ما 5% تخفیف بگیرند

آفلاین gbmtoday

  • Jr. Member
  • *
  • ارسال: 98
  • temp !
پاسخ به: c++ و ایجاد فایل های هدر .h
« پاسخ #3 : 15 آذر 1388، 11:53 ب‌ظ »
۱ به نظر من برای شروع برنامه نویسی از netbeans یا eclipse استفاده نکنید و از gedit یا geany استفاده کنید.
 ۲ netbeans بصورت ‍‍پیش فرض c++ را support نمیکنه . و باید plug-in رو نصب کنید.
۳ FILE->New File بعد از قسمت سمت راست C++ و از قسمت سمت چپ C++ header File رو انتخاب کن . قسمت بعد هم اسم فایل و محلشو انتخاب می کنید ...

داخل فایل های .h معمولا اعلان تابع ها و کلاس ها نوشته می شود و داخل فایل های .cpp دستورات و کد تابع ها نوشته می شود

برای نمونه

Params.h
#ifndef __PARAMS__
#define __PARAMS__

#include <string>
#include <cstring>
#include <iostream>
#include <cstdlib>

class Params
{

std::string host ;

int port ;

std::string team_name ;

std::string robot_name ;

  public :

    Params () ;
static Params &instance();
void set_default_params () ;
bool check_params ( int ac , char *av[] ) ;
std::string get_host () ;
int get_port () ;
std::string get_team_name () ;
std::string get_robot_name () ;
};

#endif

Params.cpp

#include "Params.h"

Params::Params()
{
    set_default_params () ;
}

Params &Params::instance()
{
    static Params param;
    return param;
}


void Params::set_default_params ()
{
host = "127.0.0.1" ;
port = 10000 ;
team_name = "RoBoTooS" ;
robot_name = "SaEiD" ;
}

bool Params::check_params ( int ac , char *av[] )
{
for (int i = 1; i < ac; ++i)
    {
        if (strcmp(av[i], "--team") == 0)
            team_name = av[++i];
else if (strcmp(av[i], "--robot") == 0)
            robot_name = av[++i];
        else if (strcmp(av[i], "--host") == 0)
            host = av[++i];
        else if (strcmp(av[i], "--port") == 0)
            port = atoi(av[++i]);
        else
            std::cerr << "What?! \"" << av[i] << "\"?!! ;)" << std::endl;
    }

    return true;
}

std::string Params::get_host ()
{
return host ;
}

int Params::get_port ()
{
return port ;
}

std::string Params::get_team_name ()
{
return team_name ;
}

std::string Params::get_robot_name ()
{
return robot_name ;
}

آفلاین parsibox

  • Hero Member
  • *
  • ارسال: 777
  • جنسیت : پسر
  • آچار فرانسه
    • سایت شخصی محسن داوری
پاسخ به: c++ و ایجاد فایل های هدر .h
« پاسخ #4 : 15 آذر 1388، 11:58 ب‌ظ »
نقل‌قول
۱ به نظر من برای شروع برنامه نویسی از netbeans یا eclipse استفاده نکنید و از gedit یا geany استفاده کنید.

با کامپایل کردن پروژه در geany مشکل دارم.
نتبینز راحت تر gtk , glade , sqlite ,... را کامپایل میکنه.
نقل‌قول
۲ netbeans بصورت ‍‍پیش فرض c++ را support نمیکنه . و باید plug-in رو نصب کنید.

من ورژن فولش را دانلود کردم.همه چیزا ساپورت میکنه.

نقل‌قول
۳ FILE->New File بعد از قسمت سمت راست C++ و از قسمت سمت چپ C++ header File رو انتخاب کن . قسمت بعد هم اسم فایل و محلشو انتخاب می کنید ...
ممنون اینا تست میکنم.


http://forum.ubuntu.ir/index.php/topic,12830.0.html
http://forum.ubuntu.ir/index.php/topic,12928.new.htm
http://forum.ubuntu.ir/index.php/topic,12151.0.html
توجه : کلیه ی کاربران لینوکس در اصفهان که متقاضی شارژ یا راه اندازی ADSL پیشگامان یا صبانت هستند میتوانند از طریق ما 5% تخفیف بگیرند

آفلاین parsibox

  • Hero Member
  • *
  • ارسال: 777
  • جنسیت : پسر
  • آچار فرانسه
    • سایت شخصی محسن داوری
پاسخ به: c++ و ایجاد فایل های هدر .h
« پاسخ #5 : 15 آذر 1388، 11:59 ب‌ظ »
یه سوال دیگه هم داشتم.
کدی نیست که بشه داخل فیلد ها مستقیم خودش فارسی بنویسه؟
الان باید زبان سیستم را تغییر بدم و بزارم روی فارسی تا بتونم فارسی تایپ کنم.
توی c++ کد آماده ای نداریم؟
http://forum.ubuntu.ir/index.php/topic,12830.0.html
http://forum.ubuntu.ir/index.php/topic,12928.new.htm
http://forum.ubuntu.ir/index.php/topic,12151.0.html
توجه : کلیه ی کاربران لینوکس در اصفهان که متقاضی شارژ یا راه اندازی ADSL پیشگامان یا صبانت هستند میتوانند از طریق ما 5% تخفیف بگیرند

آفلاین gbmtoday

  • Jr. Member
  • *
  • ارسال: 98
  • temp !
پاسخ به: c++ و ایجاد فایل های هدر .h
« پاسخ #6 : 16 آذر 1388، 05:04 ب‌ظ »
Motvaje manzorton nmisham
( nmidonam chra Farsi m yho ghatide? )sry

آفلاین parsibox

  • Hero Member
  • *
  • ارسال: 777
  • جنسیت : پسر
  • آچار فرانسه
    • سایت شخصی محسن داوری
پاسخ به: c++ و ایجاد فایل های هدر .h
« پاسخ #7 : 16 آذر 1388، 05:51 ب‌ظ »
ببین من یه فرم درست کردم.
یه جا گذاشتم که اسم را وارد میکنند.
وقتی میخوام توی این فرم تایپ کنم در حالت عادی انگلیسی تایپ میشه مگر اینکه زبان سیستم عامل را روی فارسی بزارم تا بتونم توی فیلد اسم فارسی بنویسم.
حالا میخوام ببینم روشی هست که بشه توی این فیلد اسم در حالت عادی فارسی تایپ بشه و نیازی به تغییر زبان سیستم عامل نباشه؟
مثلا برو به این آدرس http://www.parscoders.com/registration
کامل که باز شد جلوی فیلد نام*: را ببین.
میتونی مستقیم توش فارسی تایپ کنی و با دکمه ای که جلوشه میتونی زبان را تغییر بدی.
الان متوجه شدی؟
تو c++ نمیشه این کار را کرد؟
http://forum.ubuntu.ir/index.php/topic,12830.0.html
http://forum.ubuntu.ir/index.php/topic,12928.new.htm
http://forum.ubuntu.ir/index.php/topic,12151.0.html
توجه : کلیه ی کاربران لینوکس در اصفهان که متقاضی شارژ یا راه اندازی ADSL پیشگامان یا صبانت هستند میتوانند از طریق ما 5% تخفیف بگیرند

آفلاین parsibox

  • Hero Member
  • *
  • ارسال: 777
  • جنسیت : پسر
  • آچار فرانسه
    • سایت شخصی محسن داوری
پاسخ به: c++ و ایجاد فایل های هدر .h
« پاسخ #8 : 16 آذر 1388، 06:09 ب‌ظ »
نقل‌قول
۳ FILE->New File بعد از قسمت سمت راست C++ و از قسمت سمت چپ C++ header File رو انتخاب کن . قسمت بعد هم اسم فایل و محلشو انتخاب می کنید ...
ببین اینا تست کردم.
این کار را که بلد بودم.
منظور من را متوجه نشدی.
  سوال من این هست:  IDE قدرت این را نداره که از روی فایل .cpp من یک فایل .h خودش بسازه؟
اگه میتونه بسازه چجوری باید اینکار را بکنم؟
مثلا شما فایل Params.cpp را به ide بدی و ide خودش برات فایل Params.h را بسازه.
http://forum.ubuntu.ir/index.php/topic,12830.0.html
http://forum.ubuntu.ir/index.php/topic,12928.new.htm
http://forum.ubuntu.ir/index.php/topic,12151.0.html
توجه : کلیه ی کاربران لینوکس در اصفهان که متقاضی شارژ یا راه اندازی ADSL پیشگامان یا صبانت هستند میتوانند از طریق ما 5% تخفیف بگیرند

آفلاین heresh

  • Hero Member
  • *
  • ارسال: 968
  • جنسیت : پسر
پاسخ به: c++ و ایجاد فایل های هدر .h
« پاسخ #9 : 16 آذر 1388، 08:19 ب‌ظ »
فایل cpp. بهش بدی و فایل h. بگیری؟!
دقیقا می‌خوای چیکار کنی؟

ببین تو ++C کد برنامه‌ها رو با پسوند cpp. ذخیره می‌کنن و header یا سرفایل کلاس‌ها رو تو یه فایل جدا با پسوند h. ذخیره می‌کنن که شامل کلاس و پروتو تایپ‌های توابع عضو میشه و تعریف همه توابع عضو رو تو یه فایل جدا به همون اسم ولی با پسوند cpp. دخیره می‌کنن. میشه کل یه کلاس رو تو همون فایل main هم نوشت ولی برای پیروی از اصل ADT که تجرد داده بهش می‌گن سرفایل کلاس‌ها رو جدا می‌نویسن.
حالا اگه تو یه فایل داری که توش یه کلاس هست می‌تونی تعریف توابع رو خودت تو یه فایل جدا بذاری. نمونه سینتکسش رو هم دوستمون بالا گذاشته
« آخرین ویرایش: 17 آذر 1388، 06:22 ب‌ظ توسط heresh »

آفلاین iCEAGE

  • Sr. Member
  • *
  • ارسال: 399
  • جنسیت : پسر
  • Life is Free and Beautiful
    • وبلاگ شخصی من
پاسخ به: c++ و ایجاد فایل های هدر .h
« پاسخ #10 : 16 آذر 1388، 11:35 ب‌ظ »
ببین من یه فرم درست کردم.
یه جا گذاشتم که اسم را وارد میکنند.
وقتی میخوام توی این فرم تایپ کنم در حالت عادی انگلیسی تایپ میشه مگر اینکه زبان سیستم عامل را روی فارسی بزارم تا بتونم توی فیلد اسم فارسی بنویسم.
حالا میخوام ببینم روشی هست که بشه توی این فیلد اسم در حالت عادی فارسی تایپ بشه و نیازی به تغییر زبان سیستم عامل نباشه؟
مثلا برو به این آدرس http://www.parscoders.com/registration
کامل که باز شد جلوی فیلد نام*: را ببین.
میتونی مستقیم توش فارسی تایپ کنی و با دکمه ای که جلوشه میتونی زبان را تغییر بدی.
الان متوجه شدی؟
تو c++ نمیشه این کار را کرد؟
در اونجا از جاوااسکریپت استفاده میشه که احتمالا وقتی کد یونیکد (یا شایدم اسکی) انگلیسی رو دریافت میکنه میگه اون رو تبدیل به کد یونیکد فارسی کن بعد اون رو تو textbox نشون بده (در واقع از رخداد presskey استفاده می‌کنه)
تو این برنامه‌ها هم میشه کاری شبیه به اونجا کرد مثلا وقتی که رخداد presskey اتفاق افتاد کد یونیکد (یا اسکی) انگلیسی رو به یونیکد فارسی تبدیل کرد.
اما به نظرم این کار منظقی نیست چون اگر کسی از زبان دیگری غیر از انگلیسی استفاده کند برنامهٔ شما غیرقابل استفاده می‌شود.
به نظرم کاربرا باید یاد بگیرند که صفحه کلید رو خودشون تغییر بدند و برنامه‌نویس هم باید از validate کردن فیلدها استفاده کنه
People said I should accept the world. Bullshit! I don't accept the world. Richard Stallman
زندگی آزاد

آفلاین parsibox

  • Hero Member
  • *
  • ارسال: 777
  • جنسیت : پسر
  • آچار فرانسه
    • سایت شخصی محسن داوری
پاسخ به: c++ و ایجاد فایل های هدر .h
« پاسخ #11 : 17 آذر 1388، 07:17 ب‌ظ »
دوست من توی ایران که یا فارسی مینوین یا انگلیسی.
غیر از این ۲ تا که نیست.
در ضمن من طرز عملکرد اون کد را نپرسیدم چون خودم جاوا اسکریپت بلد هستم و میدونم چیکار کردم.
من ۴ سال php کار کردم و کامل برنامه نویسی تحت وب بلد هستم.
من نمیخوام بشینم و چرخ را از اول اختراع کنم.سوال کردم که آیا چنین کدی برای cpp کسی نوشته؟
اگه قبلا نوشتن که منم استفاده کنم ولی اگه ننوشتن بشینم و برای برنامم بنویسم.
===========
فایل .h را هم برای این میخوام :
همون طور که خودت گفتی من کل برنامم را توی ۱ فایل نوشتم ولی حالا میخوام قسمت های مختلف را جدا کنم و فقط در فایل اصلی include کنم.
ولی تا اونجایی که من فهمیدم برای include کردن حتما باید فایل  .h بهش بدم و بعد فایل .cpp را خودش باز میکنه.
نمیدونم درست متوجه شدم یا نه.درست فهمیدم؟
حالا میخوام ببینم ide نمیتونه از روی فایل .cpp من یک فایل .h بسازه؟
http://forum.ubuntu.ir/index.php/topic,12830.0.html
http://forum.ubuntu.ir/index.php/topic,12928.new.htm
http://forum.ubuntu.ir/index.php/topic,12151.0.html
توجه : کلیه ی کاربران لینوکس در اصفهان که متقاضی شارژ یا راه اندازی ADSL پیشگامان یا صبانت هستند میتوانند از طریق ما 5% تخفیف بگیرند

آفلاین gbmtoday

  • Jr. Member
  • *
  • ارسال: 98
  • temp !
پاسخ به: c++ و ایجاد فایل های هدر .h
« پاسخ #12 : 17 آذر 1388، 07:43 ب‌ظ »

ولی تا اونجایی که من فهمیدم برای include کردن حتما باید فایل  .h بهش بدم و بعد فایل .cpp را خودش باز میکنه.

دوست عزیز اشتباه اه عرضتون رسوندن....
هیچ الزامی نیست که حتما فایل .h رو include کنی فایل .cpp رو هم میشه include کرد ...
و هیچ وقت فایل .h اتوماتیک فایل .cpp رو include نمیکنه مگر اینکه خودت بهش گفته باشی ...


حالا میخوام ببینم ide نمیتونه از روی فایل .cpp من یک فایل .h بسازه؟

من که نه همچین چیزی دیدم نه شنیدم ....

فک نکنم 4 خط کد ارزش این کارا رو داشته باشه ... برای هر تابع فقط یک خط ... فک نکنم زحمتی داشته باشه

آفلاین parsibox

  • Hero Member
  • *
  • ارسال: 777
  • جنسیت : پسر
  • آچار فرانسه
    • سایت شخصی محسن داوری
پاسخ به: c++ و ایجاد فایل های هدر .h
« پاسخ #13 : 17 آذر 1388، 08:57 ب‌ظ »
آهان
پس اینا ببین

#include <stdlib.h>
#include <stdio.h>
#include <iostream>
#include <gtk/gtk.h>
#include <glade/glade.h>
#include <sqlite3.h>
#include"tarikh_farsi.h"

من فقط اینا را گذاشتم
و داخل فایل  tarikh_farsi.h هم اینا را گذاشتم :
/*
 * File:   tarikh_farsi.h
 * Author: mohsen
 *
 * Created on December 7, 2009, 2:07 AM
 */

#ifndef _TARIKH_FARSI_H
#define _TARIKH_FARSI_H



#endif /* _TARIKH_FARSI_H */


ولی از تابع تاریخ فارسی که در فایل tarikh_farsi.cpp گذاشتم دارم توی برنامم استفاده میکنم!!!!!
هیچ جای برنامم هم فایل tarikh_farsi.cpp  را اینکلود نکردم
یعنی الان چجوری برنامم داره از این فایل استفاده میکنه؟
http://forum.ubuntu.ir/index.php/topic,12830.0.html
http://forum.ubuntu.ir/index.php/topic,12928.new.htm
http://forum.ubuntu.ir/index.php/topic,12151.0.html
توجه : کلیه ی کاربران لینوکس در اصفهان که متقاضی شارژ یا راه اندازی ADSL پیشگامان یا صبانت هستند میتوانند از طریق ما 5% تخفیف بگیرند

آفلاین gbmtoday

  • Jr. Member
  • *
  • ارسال: 98
  • temp !
پاسخ به: c++ و ایجاد فایل های هدر .h
« پاسخ #14 : 17 آذر 1388، 11:56 ب‌ظ »
الان شما داخل این فایل tarikh_farsi.h هیچ کار خاصی نکردی ... هیچی
معمولا داخل فایل ها .h کلاس تعریف می کنن و اعلان متد ها (‌تابع ها ) رو می  نویسند اما این فایل .h شما بی مصرف و هیچ کاربردی نداره ...
اصلا هم لازم نیست include کنیش...

اون تابع هم که امکان نداره همچین چیزی ... شما حتما یه جایی یه جوری اون فایلی که تابع داخلش تعریف شده رو include کردی ...