farshid_56 0 ارسال شده در فروردین 99 با سلام خدمت دوستان میخواستم بپرسم کسی از دوستان میدونه چطور میتونم دو یا چند سورس کد مختلف رو در قالب یک پروژه ی سی پلاس پلاس تعریف کنم؟ این کار رو در کدبلاک انجام دادم ولی متاسفانه موقع کامپایل کردن در هر دو تا سورس کد خطای استفاده ی چندباره از تابع main رو ازم گرفت. نقل قول به اشتراک گذاری این ارسال لینک به ارسال به اشتراک گذاری در سایت های دیگر
0 قاسم رمضانی منش 63 ارسال شده در فروردین 99 سلام و درود بر شما؛ خب شما باید از اون APIهایی که دو پروژهٔ مختلف بهشما میدهند استفاده کنید، و فقط یک تابع Main را نگهداری کنید. برای مثال، ما دو Source code داریم که به اینصورت تعریف شدهاند: main_1.cpp: #include <algorithm> #include <iostream> #include <vector> using vec_int = std::vector<int>; void print_vector(const vec_int& in) { std::for_each(in.begin(), in.end(), [](const auto& i) { std::cout << i << std::endl; }); } int main(void) { vec_int my_vec(10); print_vector(my_vec); } و یک Source code دیگر: main_2.cpp: #include <algorithm> #include <iostream> #include <vector> #include <ctime> using vec_int = std::vector<int>; void initilization_vector(vec_int& in) { std::srand(std::time(nullptr)); std::generate(in.begin(), in.end(), []() { return std::rand() % 100; }); } int main(void) { vec_int my_vec(10); initilization_vector(my_vec); } حالا برای اینکهما بتوانیم از APIهای این Source codeها استفاده کنیم ابتدا یک Header file درست میکنیم و اعلانهای APIهای مورد نظرمان را داخل آن مینویسیم: my_api.h: #ifndef MY_API_H #define MY_API_H #include <algorithm> #include <iostream> #include <vector> #include <ctime> using vec_int = std::vector<int>; namespace api { void print_vector(const vec_int& in); void initilization_vector(vec_int& in); } // namespace api #endif // MY_API_H همچنین برای تعاریف از یک Source file دیگر استفاده میکنیم: my_api.cpp: #include "my_api.h" void api::print_vector(const vec_int &in) { std::for_each(in.begin(), in.end(), [](const auto &i) { std::cout << i << std::endl; }); } void api::initilization_vector(vec_int &in) { std::srand(std::time(nullptr)); std::generate(in.begin(), in.end(), []() { return std::rand() % 100; }); } حال به راحتی میتوانیم در پروژهٔ تازه ایجاد کردهٔ خودمان از این APIهایی که از دو Source code مختلف با دو Main جدا جمعآوری شده را استفاده کنیم: main.cpp: #include "my_api.h" int main(void) { vec_int my_vec(10); api::initilization_vector(my_vec); api::print_vector(my_vec); } نمایی از محیط Code::blocks برای پروژهٔ بالا: نقل قول به اشتراک گذاری این ارسال لینک به ارسال به اشتراک گذاری در سایت های دیگر
با سلام خدمت دوستان میخواستم بپرسم کسی از دوستان میدونه چطور میتونم دو یا چند سورس کد مختلف رو در قالب یک پروژه ی سی پلاس پلاس تعریف کنم؟
این کار رو در کدبلاک انجام دادم ولی متاسفانه موقع کامپایل کردن در هر دو تا سورس کد خطای استفاده ی چندباره از تابع main رو ازم گرفت.
به اشتراک گذاری این ارسال
لینک به ارسال
به اشتراک گذاری در سایت های دیگر