PDA

View Full Version : حرفه ای: در ادامه الحاق



gortani
شنبه 01 آبان 1389, 07:50 صبح
براي اينكه بتوان يك قطعه كد (مثلا يك كلاس) را به عنوان فايل سرآيند به برنامه اضافه كرد بايد چه مراحلي طي شود.

tdkhakpur
شنبه 01 آبان 1389, 11:22 صبح
کاری نداره اون رووداخل یک فایل با هر پسوندی که خواستید قرار بدید و بصورت زیر include کنید.
مثلا اگر کلاس شما داخل فایلی به اسم myclass.h قرار بگیره اینطوری فایل رو به برنامه الحاق کنید.


#include <myclass.h>

r00tkit
شنبه 01 آبان 1389, 11:44 صبح
برای header هایی که خودمون درست می کنیم از



#include"myheader.h"
استفاده می کنیم نه <>

مصطفی ساتکی
شنبه 01 آبان 1389, 13:31 عصر
برای header هایی که خودمون درست می کنیم از

کد:
#include"myheader.h"
استفاده می کنیم نه <>
ببخشید جواب اشتباه که میدید تاکید هم می کنید میشه این پست که زدید منبع هم داره یا نه.
حداقل جواب اشتباه که میدید به جواب دیگران اشکال نگیرید.
گوتیشن و براکت مربوط به نحوه جستجو فایل هدر نه مطالبی که شما عرض کردید.
موفق باشید

r00tkit
شنبه 01 آبان 1389, 14:52 عصر
دوست عزیز برای header هایی که خودمون درست می کنیم از quotation استفاده می کنیم دقیقا" به همون علتی که شما گفتین ""گوتیشن و براکت مربوط به نحوه جستجو فایل هدر""

منبع: C++‎ Primer, Third Edition


#include <some_file.h>
#include "my_file.h"
If the file name is enclosed by angle brackets (<,>) the file is presumed to be a project or standard header file. The search to find it will examine a predefined set of locations, which can be modified by setting a searchpath environment variable or through a command line option. (The methods of doing this vary significantly across platforms, and we recommend you ask a colleague or consult your compiler's User's Guide for further information.) If the file name is enclosed by a pair of quotation marks, the file is presumed to be a user-supplied header file. The search to find it begins in the directory in which the including file is located.

به عبارت دیگه اگه ما یه هدر درست کردیم به جای < از " استفاده می کنیم تا علاوه بر اینکه مکان header رو به لینکر بشناسونیم زمان کمتری صرف سرچ header تو مسیر های environment variable صرف کنیم

علت که معلوم شد حالا شما که اینقدر معلومات داری یه سرچ کن تو کتاب ها ببین همه header هایی که مربوط به project خودشونه رو تو " قرار داردن دقیقا" به همون علتی که گفتی

علت رو 2 بار نوشتم تا بدونی دقیقا" به این علت از " به جای > استفاده می شه

نمی دونم منظورم رو می گیری یا نه ؟؟؟

منابه بیشتر ( دقیق بخون تا حرف من رو بگیری)

http://gcc.gnu.org/onlinedocs/gcc-4.3.2//cpp/Include-Syntax.html#Include-Syntax


جون بهم بر خورد یه بار دیگه تکرار می کنم : به علت فرق کردن مسیر های سرچ در استفاده از " و < در header هایی که خودمون تو پروژمون می نویسم از " استفاده می کنیم
موفق باشید ./

gortani
شنبه 01 آبان 1389, 16:39 عصر
برنامه ای ساده با مشخصات زیر نوشتم
sum.h

#ifndef sum_h
#define sum_h
class sum1{
public:
sum1();
int read();
int sum();
private:
int a,b,c;

};
#endif sum.cpp

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

sum1::sum1()
{
a=0;
b=0;
c=0;
}

int sum1::read()
{
cout<<"enter two number:";
cin>>a>>b;
return 0;
}
qqqq.cpp

#include<conio.h>
#include<iostream.h>
#include"sum.h"
int main()
{
sum1 jam;
jam.read();
cout<<endl<<"sum is:"<<jam.sum();
getch();
return 0;
}اما هنگام کامپایل qqqq.cpp با خطا های زیر در dev-C++‎ مواجهه شدم
Compiler: Default compiler
Executing g++.exe...
g++.exe "C:\Documents and Settings\jalal\Desktop\ddd.cpp" -o "C:\Documents and Settings\jalal\Desktop\ddd.exe" -I"C:\Dev-Cpp\lib\gcc\mingw32\3.4.2\include" -I"C:\Dev-Cpp\include\c++\3.4.2\backward" -I"C:\Dev-Cpp\include\c++\3.4.2\mingw32" -I"C:\Dev-Cpp\include\c++\3.4.2" -I"C:\Dev-Cpp\include" -L"C:\Dev-Cpp\lib"
In file included from C:/Dev-Cpp/include/c++/3.4.2/backward/iostream.h:31,
from C:\Documents and Settings\jalal\Desktop\ddd.cpp:2:
C:/Dev-Cpp/include/c++/3.4.2/backward/backward_warning.h:32:2: warning: #warning This file includes at least one deprecated or antiquated header. Please consider using one of the 32 headers found in section 17.4.1.2 of the C++ standard. Examples include substituting the <X> header for the <X.h> header for C++ includes, or <iostream> instead of the deprecated header <iostream.h>. To disable this warning use -Wno-deprecated.

C:\DOCUME~1\jalal\LOCALS~1\Temp/ccG6baaa.o(.text+0x132):ddd.cpp: undefined reference to `sum1::sum1()'
C:\DOCUME~1\jalal\LOCALS~1\Temp/ccG6baaa.o(.text+0x13d):ddd.cpp: undefined reference to `sum1::read()'
C:\DOCUME~1\jalal\LOCALS~1\Temp/ccG6baaa.o(.text+0x148):ddd.cpp: undefined reference to `sum1::sum()'
collect2: ld returned 1 exit status

Execution terminated
چرا؟
در ضمن تمام فایل های فوق در یک مسیر است.

r00tkit
شنبه 01 آبان 1389, 17:12 عصر
sum.cpp رو با qqqq.cpp رو تو یه جا نبویس

اول sum بعد qqqq

gortani
یک شنبه 02 آبان 1389, 10:42 صبح
این را خودم می دانم می خواهم قسمت کلاس را از کل برنامه جدا کرده و درون فایل دیگری ذخیره کنم تا قابلیت حمل پیدا کند.

r00tkit
دوشنبه 03 آبان 1389, 15:58 عصر
پس کل کلاس رو تو header پیاده سازی کن

tdkhakpur
دوشنبه 03 آبان 1389, 17:42 عصر
برای header هایی که خودمون درست می کنیم از quotation استفاده می کنیم دقیقا" به همون علتی که شما گفتین ""گوتیشن و براکت مربوط به نحوه جستجو فایل هدر""

منبع: C++‎‎ Primer, Third Edition به عبارت دیگه اگه ما یه هدر درست کردیم به جای < از " استفاده می کنیم تا علاوه بر اینکه مکان header رو به لینکر بشناسونیم زمان کمتری صرف سرچ header تو مسیر های environment variable صرف کنیم
علت رو 2 بار نوشتم تا بدونی دقیقا" به این علت از " به جای > استفاده می شه

نمی دونم منظورم رو می گیری یا نه ؟؟؟

منابه بیشتر ( دقیق بخون تا حرف من رو بگیری)

http://gcc.gnu.org/onlinedocs/gcc-4.3.2//cpp/Include-Syntax.html#Include-Syntax


جون بهم بر خورد یه بار دیگه تکرار می کنم : به علت فرق کردن مسیر های سرچ در استفاده از " و < در header هایی که خودمون تو پروژمون می نویسم از " استفاده می کنیم
موفق باشید ./
ببین اون تاکیدی که شما دادی انگار به مفهوم اینه که اگر کوتیشن نزاریم برنامه کد نمیشه.
شما اخرش اومدی و به نحوی حرف ما رو دور زدی.

r00tkit
دوشنبه 03 آبان 1389, 18:05 عصر
ببین اون تاکیدی که شما دادی انگار به مفهوم اینه که اگر کوتیشن نزاریم برنامه کد نمیشه.
شما اخرش اومدی و به نحوی حرف ما رو دور زدی.


با این کلمه ها { انگار ،مثلا" ، گویی، مثله} نامانوسم