ساخت فایل Header زیر مجموعه یک namespace دست ساز در ++C - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

وبـــلاگ هــفت خــط کــد


آموزش های برنامه نویسی
۳۴۱ نفر آنلاین
۱۱۸ عضو و ۲۲۳ مهمان در سایت حاضرند

ساخت فایل Header زیر مجموعه یک namespace دست ساز در ++C

+1 امتیاز
باسلام.

من یه namespace ساختم و میخام یه سری کتاب خونه جدا که خودم ساختم رو بکنم زیر مجموعه این namespace .

ینی کلاس ها یا توابع موجود در اون فایل Header زیر مجموعه namespace من باشن.

باید چی کار کنم.
سوال شده دی 18, 1393  بوسیله ی Arshia::Aghaei (امتیاز 108)   8 14 22

1 پاسخ

+2 امتیاز
 
بهترین پاسخ

 یک header بسازید داخل  قسمت .h تعریف توابع رو بزارید و داخل فایل .cpp بدنه رو پیاده سازی کنید و هر جا که خواستید هدر رو include کنید و استفاده کنید .

برای نمونه :

فایل test.h

 

#ifndef TEST_H
#define TEST_H

namespace my_namespace
{
	class A
	{
	public:
		A();
		void f();
	};
	void free_func();

}

#endif // TEST_H

فایل test.cpp

#include <iostream>
#include "test.h"
namespace my_namespace
{
	A::A(){
		std::cout << "IN constructor \n";
	}

	void A::f()
	{
		std::cout << "In class A f function\n";
	}

	void free_func()
	{
		std::cout << "In  free function\n";
	}

}

فایل main.cpp

#include "test.h"

int main() {
	my_namespace::A a;
	a.f();
	my_namespace::free_func();
}
 

نمونه پروژه ویژوال استودیو :  https://www.dropbox.com/s/y3em66tf1vbfu0i/my_namespace.rar?dl=0

پاسخ داده شده دی 18, 1393 بوسیله ی BlueBlade (امتیاز 15,315)   15 18 89
انتخاب شد دی 19, 1393 بوسیله ی Arshia::Aghaei
میشه یکم بیشتر توضیح بدین ؟
درباره چه موردی ؟
اگه من بخام 5 تا Header مختلف بسازم که زیر مجموعه namespace من باشه چی ؟
فرقی نمی کنه داخل اون هدر ها هم به همین شکل عملی کنین مثلا داخل test2.h بنویسید
namespace my_namespace
{
   class other{};
}
ینی باید توی همه ی هدر ها namespace رو استفاده کنم و تعریف توابع.
و در فایل cpp اون باید باز namespace رو استفاده کنم و بدنه توابع رو بنویسم ؟
آره دقیقا .
یه سوال اونوفت.
namespace std توی همه ی Header های استاندارد ++C تعریف شده ینی ؟
آره مثلا این فایل iostream.h پیاده سازی کامپایلر gcc رو ببینید
https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/iostream
فقط iostream ? من تو هدر vector چیزی ندیدم.
بخاطر اینه که داخل هدر vector فقط یکسری هدر دیگه include شده .
پیاده سازی وکتور داخل این هدر هستش
https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/bits/stl_vector.h
...