Difference between revisions of "Advanced-Cpp/C2/Abstract-Class/Bengali"
From Script | Spoken-Tutorial
(Created page with " {| border=1 | '''Time''' | '''Narration''' |- | 00:01 | C++ এ Abstract Class এবং Pure Virtual Function এর টিউটোরিয়ালে আপনাদ...") |
|||
Line 7: | Line 7: | ||
|- | |- | ||
| 00:01 | | 00:01 | ||
− | | C++ এ Abstract Class এবং Pure Virtual Function এর টিউটোরিয়ালে আপনাদের স্বাগত। | + | | '''C++''' এ '''Abstract Class''' এবং '''Pure Virtual Function''' এর টিউটোরিয়ালে আপনাদের স্বাগত। |
|- | |- | ||
Line 31: | Line 31: | ||
|- | |- | ||
| 00:19 | | 00:19 | ||
− | | উবুন্টু OS সংস্করণ 11.10 | + | | উবুন্টু '''OS''' সংস্করণ '''11.10''' |
|- | |- | ||
| 00:23 | | 00:23 | ||
− | | g++ কম্পাইলার সংস্করণ 4.6.1 ব্যবহার করছি। | + | | '''g++''' কম্পাইলার সংস্করণ '''4.6.1''' ব্যবহার করছি। |
|- | |- | ||
| 00:27 | | 00:27 | ||
− | | এখন Abstract Class এর ভূমিকা দিয়ে শুরু করি। | + | | এখন '''Abstract Class''' এর ভূমিকা দিয়ে শুরু করি। |
|- | |- | ||
| 00:31 | | 00:31 | ||
− | | Abstract Class সর্বদা একটি '''base''' ক্লাস। | + | | '''Abstract Class''' সর্বদা একটি '''base''' ক্লাস। |
|- | |- | ||
| 00:35 | | 00:35 | ||
− | |এতে অন্তত একটি Pure Virtual Function থাকে। | + | |এতে অন্তত একটি '''Pure Virtual Function''' থাকে। |
|- | |- | ||
| 00:39 | | 00:39 | ||
− | |আমরা Abstract Class এর ইনস্ট্যান্স তৈরী করতে পারি না। | + | |আমরা '''Abstract Class''' এর ইনস্ট্যান্স তৈরী করতে পারি না। |
|- | |- | ||
| 00:43 | | 00:43 | ||
− | | এখন Pure Virtual Function দেখি। | + | | এখন '''Pure Virtual Function''' দেখি। |
|- | |- | ||
| 00:45 | | 00:45 | ||
− | |একটি Pure Virtual Function, বডি ছাড়া একটি ফাংশন। | + | |একটি '''Pure Virtual Function''', বডি ছাড়া একটি ফাংশন। |
|- | |- | ||
Line 98: | Line 98: | ||
|- | |- | ||
| 01:18 | | 01:18 | ||
− | |উল্লেখ্য যে আমাদের ফাইলের নাম abstract ডট cpp | + | |উল্লেখ্য যে আমাদের ফাইলের নাম '''abstract''' ডট '''cpp''' |
|- | |- | ||
Line 110: | Line 110: | ||
|- | |- | ||
| 01:30 | | 01:30 | ||
− | | iostream হিসেবে এটি আমাদের হেডার ফাইল। | + | | '''iostream''' হিসেবে এটি আমাদের হেডার ফাইল। |
|- | |- | ||
| 01:33 | | 01:33 | ||
− | | এখানে আমরা std namespace ব্যবহার করছি। | + | | এখানে আমরা '''std namespace''' ব্যবহার করছি। |
|- | |- | ||
| 01:36 | | 01:36 | ||
− | | এটি ক্লাসের জন্য ঘোষনাকরণ যা হল abstractinterface | + | | এটি ক্লাসের জন্য ঘোষনাকরণ যা হল '''abstractinterface''' |
|- | |- | ||
| 01:41 | | 01:41 | ||
− | | তারপর আমাদের কাছে public স্পেসিফায়ার রয়েছে। | + | | তারপর আমাদের কাছে '''public''' স্পেসিফায়ার রয়েছে। |
|- | |- | ||
| 01:44 | | 01:44 | ||
− | | এখানে আমরা একটি ভার্চুয়াল ফাংশন ঘোষিত করেছি যা হল "numbers". | + | | এখানে আমরা একটি ভার্চুয়াল ফাংশন ঘোষিত করেছি যা হল '''"numbers"'''. |
|- | |- | ||
| 01:49 | | 01:49 | ||
− | |এটি 0 তে ইনিসিয়েলাইজ করা হয়েছে। | + | |এটি '''0''' তে ইনিসিয়েলাইজ করা হয়েছে। |
|- | |- | ||
Line 138: | Line 138: | ||
|- | |- | ||
| 01:55 | | 01:55 | ||
− | |এবং a ও b হিসাবে দুটি ইন্টিজার ভ্যারিয়েবল রয়েছে। | + | |এবং '''a''' ও '''b''' হিসাবে দুটি ইন্টিজার ভ্যারিয়েবল রয়েছে। |
|- | |- | ||
| 01:59 | | 01:59 | ||
− | | এখানে আমরা input ফাংশন অ্যাক্সেস করি। | + | | এখানে আমরা '''input''' ফাংশন অ্যাক্সেস করি। |
|- | |- | ||
| 02:01 | | 02:01 | ||
− | |এতে আমরা সংখ্যা a এবং b গ্রহণ করি। | + | |এতে আমরা সংখ্যা '''a''' এবং '''b''' গ্রহণ করি। |
|- | |- | ||
| 02:05 | | 02:05 | ||
− | | এটি একটি ডিরাইভড ক্লাস যা হল add. | + | | এটি একটি ডিরাইভড ক্লাস যা হল '''add'''. |
|- | |- | ||
| 02:09 | | 02:09 | ||
− | |এটি বেস ক্লাস "abstractinterface" এর বৈশিষ্ট্য আহরণ করে। | + | |এটি বেস ক্লাস '''"abstractinterface"''' এর বৈশিষ্ট্য আহরণ করে। |
|- | |- | ||
| 02:14 | | 02:14 | ||
− | | এখানে আমরা "numbers" ফাংশন ওভাররাইড করি। | + | | এখানে আমরা '''"numbers"''' ফাংশন ওভাররাইড করি। |
|- | |- | ||
| 02:18 | | 02:18 | ||
− | |এতে আমরা দুটি সংখ্যা a এবং b এর যোগফল সম্পাদন করি | + | |এতে আমরা দুটি সংখ্যা '''a''' এবং '''b''' এর যোগফল সম্পাদন করি |
|- | |- | ||
| 02:21 | | 02:21 | ||
− | |এবং ফলাফল ইন্টিজার ভ্যারিয়েবল "sum" এ সংরক্ষণ করি। | + | |এবং ফলাফল ইন্টিজার ভ্যারিয়েবল '''"sum"''' এ সংরক্ষণ করি। |
|- | |- | ||
Line 174: | Line 174: | ||
|- | |- | ||
| 02:27 | | 02:27 | ||
− | | এখানে sub নাম আরেকটি ডিরাইভড | + | | এখানে '''sub''' নাম আরেকটি ডিরাইভড ক্লাস রয়েছে। |
|- | |- | ||
| 02:31 | | 02:31 | ||
− | |এটিও বেস ক্লাস "abstractinterface" আহরণ করে। | + | |এটিও বেস ক্লাস '''"abstractinterface"''' আহরণ করে। |
|- | |- | ||
| 02:35 | | 02:35 | ||
− | | এখানে, আবার আমরা "numbers" ফাংশন ওভাররাইড করি | + | | এখানে, আবার আমরা '''"numbers"''' ফাংশন ওভাররাইড করি |
|- | |- | ||
| 02:39 | | 02:39 | ||
− | |এবং এখানে আমরা দুটি সংখ্যা a এবং | + | |এবং এখানে আমরা দুটি সংখ্যা '''a''' এবং '''b''' এর তফাৎ নিরূপণ করি। |
|- | |- | ||
Line 198: | Line 198: | ||
|- | |- | ||
| 02:48 | | 02:48 | ||
− | | এখানে আমরা "add" ক্লাসের obj1 হিসাবে একটি অবজেক্ট তৈরী করি। | + | | এখানে আমরা '''"add"''' ক্লাসের '''obj1''' হিসাবে একটি অবজেক্ট তৈরী করি। |
|- | |- | ||
| 02:53 | | 02:53 | ||
− | |তারপর আমরা উভয় "input" এবং "numbers" ফাংশন obj1 অবজেক্ট ব্যবহার করে কল করি। | + | |তারপর আমরা উভয় '''"input"''' এবং '''"numbers"''' ফাংশন '''obj1''' অবজেক্ট ব্যবহার করে কল করি। |
|- | |- | ||
| 02:59 | | 02:59 | ||
− | | তারপর আমরা "sub" ক্লাসের obj2 হিসাবে একটি অবজেক্ট তৈরী করি। | + | | তারপর আমরা '''"sub"''' ক্লাসের '''obj2''' হিসাবে একটি অবজেক্ট তৈরী করি। |
|- | |- | ||
| 03:04 | | 03:04 | ||
− | |এখন দুটি ফাংশন অবজেক্ট obj2 ব্যবহার করে কল করি | + | |এখন দুটি ফাংশন অবজেক্ট '''obj2''' ব্যবহার করে কল করি |
|- | |- | ||
Line 222: | Line 222: | ||
|- | |- | ||
| 03:13 | | 03:13 | ||
− | | আপনার কীবোর্ডে Ctrl, Alt এবং T একসাথে টিপে টার্মিনাল উইন্ডো খুলুন। | + | | আপনার কীবোর্ডে '''Ctrl, Alt''' এবং '''T''' একসাথে টিপে টার্মিনাল উইন্ডো খুলুন। |
|- | |- | ||
| 03:21 | | 03:21 | ||
− | | কম্পাইল করতে লিখুন, g++ স্পেস abstract ডট cpp স্পেস -o স্পেস abs | + | | কম্পাইল করতে লিখুন, '''g++''' স্পেস '''abstract''' ডট '''cpp''' স্পেস '''-o''' স্পেস '''abs''' |
|- | |- | ||
| 03:31 | | 03:31 | ||
− | |Enter টিপুন। | + | | '''Enter''' টিপুন। |
|- | |- | ||
| 03:32 | | 03:32 | ||
− | |লিখুন, ডট স্ল্যাশ abs | + | |লিখুন, ডট স্ল্যাশ '''abs''' |
|- | |- | ||
| 03:34 | | 03:34 | ||
− | |Enter টিপুন। | + | | '''Enter''' টিপুন। |
|- | |- | ||
| 03:36 | | 03:36 | ||
− | | এটি Enter the numbers হিসাবে প্রদর্শিত হয়েছে। | + | | এটি '''Enter the numbers''' হিসাবে প্রদর্শিত হয়েছে। |
|- | |- | ||
| 03:38 | | 03:38 | ||
− | |আমি 9 এবং 4 লিখব। | + | |আমি '''9''' এবং '''4''' লিখব। |
|- | |- | ||
| 03:42 | | 03:42 | ||
− | |প্রদর্শিত আউটপুট হল Sum is 13 | + | |প্রদর্শিত আউটপুট হল '''Sum is 13''' |
|- | |- | ||
| 03:46 | | 03:46 | ||
− | |আবার আমরা দেখি Enter the numbers. | + | |আবার আমরা দেখি '''Enter the numbers'''. |
|- | |- | ||
| 03:49 | | 03:49 | ||
− | |আমি 8 এবং 3 লিখব। | + | |আমি '''8''' এবং '''3''' লিখব। |
|- | |- | ||
| 03:52 | | 03:52 | ||
− | |প্রদর্শিত আউটপুট হল diff is 5 | + | |প্রদর্শিত আউটপুট হল '''diff is 5''' |
|- | |- | ||
Line 282: | Line 282: | ||
|- | |- | ||
| 04:04 | | 04:04 | ||
− | | Abstract | + | | '''Abstract Clas's''' উদাহরণস্বরূপ '''class abstractinterface''' |
|- | |- | ||
| 04:09 | | 04:09 | ||
− | | Pure Virtual Function উদাহরণস্বরূপ virtual void numbers()=0; | + | | '''Pure Virtual Function''' উদাহরণস্বরূপ '''virtual void numbers()=0;''' |
|- | |- | ||
| 04:14 | | 04:14 | ||
− | | এখন, একটি abstract class "student" তৈরী করুন। | + | | এখন, একটি '''abstract class "student"''' তৈরী করুন। |
|- | |- | ||
| 04:17 | | 04:17 | ||
− | | একটি Pure Virtual Function "Info" তৈরী করুন। | + | | একটি '''Pure Virtual Function "Info"''' তৈরী করুন। |
|- | |- | ||
Line 302: | Line 302: | ||
|- | |- | ||
| 04:25 | | 04:25 | ||
− | | দুটি ডিরাইভড ক্লাস marks এবং sports তৈরী করুন। | + | | দুটি ডিরাইভড ক্লাস '''marks''' এবং '''sports''' তৈরী করুন। |
|- | |- | ||
| 04:29 | | 04:29 | ||
− | |marks এ, তিনটি বিষয়ের মার্কস গ্রহণ করুন। | + | |'''marks''' এ, তিনটি বিষয়ের মার্কস গ্রহণ করুন। |
|- | |- | ||
| 04:32 | | 04:32 | ||
− | |sports এ, খেলায় প্রাপ্ত মার্কস গ্রহণ করুন। | + | |'''sports''' এ, খেলায় প্রাপ্ত মার্কস গ্রহণ করুন। |
|- | |- | ||
Line 318: | Line 318: | ||
|- | |- | ||
| 04:38 | | 04:38 | ||
− | |তারপর আরেকটি ডিরাইভড ক্লাস result তৈরী করুন। | + | |তারপর আরেকটি ডিরাইভড ক্লাস '''result''' তৈরী করুন। |
|- | |- | ||
Line 346: | Line 346: | ||
|- | |- | ||
| 05:07 | | 05:07 | ||
− | |বিস্তারিত তথ্যের জন্য contact@spoken-tutorial.org তে ইমেল করুন। | + | |বিস্তারিত তথ্যের জন্য '''contact@spoken-tutorial.org''' তে ইমেল করুন। |
|- | |- | ||
| 05:14 | | 05:14 | ||
− | | স্পোকেন টিউটোরিয়াল Talk to a Teacher প্রকল্পের অংশবিশেষ। | + | | স্পোকেন টিউটোরিয়াল '''Talk to a Teacher''' প্রকল্পের অংশবিশেষ। |
|- | |- | ||
| 05:18 | | 05:18 | ||
− | |এটি ভারত সরকারের ICT, MHRD এর জাতীয় সাক্ষরতা মিশন দ্বারা সমর্থিত। | + | |এটি ভারত সরকারের '''ICT, MHRD''' এর জাতীয় সাক্ষরতা মিশন দ্বারা সমর্থিত। |
|- | |- |
Revision as of 11:36, 1 December 2014
Time | Narration |
00:01 | C++ এ Abstract Class এবং Pure Virtual Function এর টিউটোরিয়ালে আপনাদের স্বাগত। |
00:08 | এই টিউটোরিয়ালে আমরা শিখব, |
00:10 | Abstract Classes |
00:11 | Pure virtual function |
00:13 | আমরা এটি একটি উদাহরণ দ্বারা করব। |
00:16 | টিউটোরিয়ালটি রেকর্ড করতে |
00:19 | উবুন্টু OS সংস্করণ 11.10 |
00:23 | g++ কম্পাইলার সংস্করণ 4.6.1 ব্যবহার করছি। |
00:27 | এখন Abstract Class এর ভূমিকা দিয়ে শুরু করি। |
00:31 | Abstract Class সর্বদা একটি base ক্লাস। |
00:35 | এতে অন্তত একটি Pure Virtual Function থাকে। |
00:39 | আমরা Abstract Class এর ইনস্ট্যান্স তৈরী করতে পারি না। |
00:43 | এখন Pure Virtual Function দেখি। |
00:45 | একটি Pure Virtual Function, বডি ছাড়া একটি ফাংশন। |
00:49 | এটি বেস ক্লাসে সংজ্ঞায়িত হয়নি। |
00:52 | এটি নিম্নরূপে ঘোষিত হয়েছে: |
00:54 | virtual void virtualfunname()=0; |
01:00 | একটি ডিরাইভ ক্লাসের ফাংশন ওভাররাইড করা আবশ্যক। |
01:04 | অন্যথায় কম্পাইলার একটি এরর দেবে। |
01:07 | ফাংশন বাস্তবায়ন করতে এটি ডিরাইভ ক্লাসের উপর নির্ভর। |
01:11 | এখন একটি উদাহরণ দেখি। |
01:13 | আমি ইতিমধ্যে এডিটরে কোড লিখেছি। |
01:16 | আমি এটি খুলবো। |
01:18 | উল্লেখ্য যে আমাদের ফাইলের নাম abstract ডট cpp |
01:22 | এই উদাহরণে দুটি সংখ্যার যোগফল এবং বিয়োগফল জড়িত থাকে। |
01:28 | এখন কোড দেখি। |
01:30 | iostream হিসেবে এটি আমাদের হেডার ফাইল। |
01:33 | এখানে আমরা std namespace ব্যবহার করছি। |
01:36 | এটি ক্লাসের জন্য ঘোষনাকরণ যা হল abstractinterface |
01:41 | তারপর আমাদের কাছে public স্পেসিফায়ার রয়েছে। |
01:44 | এখানে আমরা একটি ভার্চুয়াল ফাংশন ঘোষিত করেছি যা হল "numbers". |
01:49 | এটি 0 তে ইনিসিয়েলাইজ করা হয়েছে। |
01:51 | তারপর আমাদের কাছে একটি নন-ভার্চুয়াল ফাংশন রয়েছে |
01:55 | এবং a ও b হিসাবে দুটি ইন্টিজার ভ্যারিয়েবল রয়েছে। |
01:59 | এখানে আমরা input ফাংশন অ্যাক্সেস করি। |
02:01 | এতে আমরা সংখ্যা a এবং b গ্রহণ করি। |
02:05 | এটি একটি ডিরাইভড ক্লাস যা হল add. |
02:09 | এটি বেস ক্লাস "abstractinterface" এর বৈশিষ্ট্য আহরণ করে। |
02:14 | এখানে আমরা "numbers" ফাংশন ওভাররাইড করি। |
02:18 | এতে আমরা দুটি সংখ্যা a এবং b এর যোগফল সম্পাদন করি |
02:21 | এবং ফলাফল ইন্টিজার ভ্যারিয়েবল "sum" এ সংরক্ষণ করি। |
02:25 | তারপর ফলাফল প্রিন্ট করি। |
02:27 | এখানে sub নাম আরেকটি ডিরাইভড ক্লাস রয়েছে। |
02:31 | এটিও বেস ক্লাস "abstractinterface" আহরণ করে। |
02:35 | এখানে, আবার আমরা "numbers" ফাংশন ওভাররাইড করি |
02:39 | এবং এখানে আমরা দুটি সংখ্যা a এবং b এর তফাৎ নিরূপণ করি। |
02:43 | তারপর আমরা তফাৎ প্রিন্ট করি। |
02:45 | এটি আমাদের main ফাংশন। |
02:48 | এখানে আমরা "add" ক্লাসের obj1 হিসাবে একটি অবজেক্ট তৈরী করি। |
02:53 | তারপর আমরা উভয় "input" এবং "numbers" ফাংশন obj1 অবজেক্ট ব্যবহার করে কল করি। |
02:59 | তারপর আমরা "sub" ক্লাসের obj2 হিসাবে একটি অবজেক্ট তৈরী করি। |
03:04 | এখন দুটি ফাংশন অবজেক্ট obj2 ব্যবহার করে কল করি |
03:08 | এবং এটি আমাদের রিটার্ন স্টেটমেন্ট। |
03:10 | এখন প্রোগ্রাম এক্সিকিউট করি। |
03:13 | আপনার কীবোর্ডে Ctrl, Alt এবং T একসাথে টিপে টার্মিনাল উইন্ডো খুলুন। |
03:21 | কম্পাইল করতে লিখুন, g++ স্পেস abstract ডট cpp স্পেস -o স্পেস abs |
03:31 | Enter টিপুন। |
03:32 | লিখুন, ডট স্ল্যাশ abs |
03:34 | Enter টিপুন। |
03:36 | এটি Enter the numbers হিসাবে প্রদর্শিত হয়েছে। |
03:38 | আমি 9 এবং 4 লিখব। |
03:42 | প্রদর্শিত আউটপুট হল Sum is 13 |
03:46 | আবার আমরা দেখি Enter the numbers. |
03:49 | আমি 8 এবং 3 লিখব। |
03:52 | প্রদর্শিত আউটপুট হল diff is 5 |
03:56 | আমরা টিউটোরিয়ালের শেষে চলে এসেছি। |
03:59 | স্লাইডে ফিরে আসি। |
04:01 | সংক্ষেপে, |
04:03 | এই টিউটোরিয়ালে শিখেছি: |
04:04 | Abstract Clas's উদাহরণস্বরূপ class abstractinterface |
04:09 | Pure Virtual Function উদাহরণস্বরূপ virtual void numbers()=0; |
04:14 | এখন, একটি abstract class "student" তৈরী করুন। |
04:17 | একটি Pure Virtual Function "Info" তৈরী করুন। |
04:20 | ফাংশনে শিক্ষার্থীর নাম এবং ক্রম সংখ্যা লিখুন। |
04:25 | দুটি ডিরাইভড ক্লাস marks এবং sports তৈরী করুন। |
04:29 | marks এ, তিনটি বিষয়ের মার্কস গ্রহণ করুন। |
04:32 | sports এ, খেলায় প্রাপ্ত মার্কস গ্রহণ করুন। |
04:35 | মার্কসের সমষ্টি গণনা করুন। |
04:38 | তারপর আরেকটি ডিরাইভড ক্লাস result তৈরী করুন। |
04:41 | এখানে, শিক্ষার্থীর নাম, ক্রম সংখ্যা এবং মার্কসের সমষ্টি প্রদর্শিত হয়। |
04:47 | এই লিঙ্কে উপলব্ধ ভিডিওটি দেখুন। |
04:50 | এটি প্রকল্পকে সারসংক্ষেপে বোঝায়। |
04:53 | ভাল ব্যান্ডউইডথ না থাকলে ভিডিওটি ডাউনলোড করে দেখুন। |
04:58 | স্পোকেন টিউটোরিয়াল প্রকল্প দল কর্মশালার আয়োজন করে। |
05:03 | অনলাইন পরীক্ষা পাস করলে প্রশংসাপত্র দেয়। |
05:07 | বিস্তারিত তথ্যের জন্য contact@spoken-tutorial.org তে ইমেল করুন। |
05:14 | স্পোকেন টিউটোরিয়াল Talk to a Teacher প্রকল্পের অংশবিশেষ। |
05:18 | এটি ভারত সরকারের ICT, MHRD এর জাতীয় সাক্ষরতা মিশন দ্বারা সমর্থিত। |
05:25 | এই বিষয়ে বিস্তারিত তথ্য এই লিঙ্কে প্রাপ্তিসাধ্য। |
05:30 | আমি কৌশিক দত্ত টিউটোরিয়ালটি অনুবাদ করেছি। ধন্যবাদ। |