Advanced-Cpp/C2/Classes-And-Objects/Punjabi

From Script | Spoken-Tutorial
Jump to: navigation, search
“Time” “Narration”
00:01 ਸਤਿ ਸ਼੍ਰੀ ਅਕਾਲ ਦੋਸਤੋ, C++ ਵਿੱਚ ‘Classes’ ਅਤੇ ‘Objects’ ਦੇ ਸਪੋਕਨ ਟਿਊਟੋਰਿਅਲ ਵਿੱਚ ਤੁਹਾਡਾ ਸਾਰਿਆ ਦਾ ਸਵਾਗਤ ਹੈ ।
00:07 ਇਸ ਟਿਊਟੋਰਿਅਲ ਵਿੱਚ ਅਸੀਂ ਹੇਠ ਲਿਖੇ ਨੂੰ ਕਰਨਾ ਸਿੱਖਾਂਗੇ,
00:09 ‘Classes’
00:11 ‘Objects’, ‘Encapsulation’ ਅਤੇ
00:14 ‘Data abstraction’
00:16 ਅਸੀਂ ਇਹ ਇੱਕ ਉਦਾਹਰਣ ਦੀ ਮੱਦਦ ਨਾਲ ਕਰਾਂਗੇ ।
00:20 ਇਸ ਟਿਊਟੋਰਿਅਲ ਨੂੰ ਰਿਕਾਰਡ ਕਰਨ ਦੇ ਲਈ, ਮੈਂ ਵਰਤੋਂ ਕਰ ਰਿਹਾ ਹਾਂ
00:23 ‘ਉਬੰਟੁ OS’ ਵਰਜਨ 11.10
00:28 ‘g++ compiler’ ਵਰਜ਼ਨ 4.6.1
00:32 ਹੁਣ ਕਲਾਸਾਂ ਦੀ ਜਾਣ-ਪਹਿਚਾਣ ਦੇ ਨਾਲ ਸ਼ੁਰੂ ਕਰਦੇ ਹਾਂ ।
00:36 ‘Class’, ਇੱਕ ‘keyword class’ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਬਣੀ ਹੈ ।
00:39 ਇਸ ਵਿੱਚ ‘data’ ਅਤੇ ‘functions’ ਹੁੰਦੇ ਹਨ ।
00:42 ਕਲਾਸ ‘code’ ਅਤੇ ‘data’ ਨੂੰ ਲਿੰਕ ਕਰਦੀ ਹੈ ।
00:45 ਕਲਾਸ ਦੇ ‘data’ ਅਤੇ ‘functions’ ਕਲਾਸ ਦੇ ਮੈਂਬਰਸ ਕਹਾਉਂਦੇ ਹਨ ।
00:51 ਹੁਣ ਆਬਜੈਕਟਸ ‘ਤੇ ਜਾਂਦੇ ਹਾਂ ।
00:53 ‘Objects’ ਵੈਰੀਏਬਲਸ ਹਨ ।
00:55 ਇਹ ਇੱਕ ‘class’ ਦੀ ਕਾਪੀ ਹੈ ।
00:58 ਉਹਨਾਂ ਵਿੱਚੋਂ ਹਰੇਕ ‘properties’ ਅਤੇ ‘behaviour’ ਰੱਖਦਾ ਹੈ ।
01:01 ‘Properties data’ ਐਲੀਮੇਂਟਸ ਨਾਲ ਪਰਿਭਾਸ਼ਿਤ ਹੁੰਦੀ ਹੈ ਅਤੇ
01:06 ‘Behavior’, ‘methods’ ਨਾਂ ਵਾਲੇ ਮੈਂਬਰ ਫੰਕਸ਼ਨਸ ਤੋਂ ਪਰਿਭਾਸ਼ਿਤ ਹੁੰਦੇ ਹਨ ।
01:10 ਹੁਣ ਕਲਾਸ ਲਈ ਰਚਨਾਕਰਮ ਵੇਖਦੇ ਹਾਂ ।
01:14 ਇੱਥੇ, ‘ਕਲਾਸ’ ਇੱਕ ਕੀਵਰਡ ਹੈ ਜੋ ਕਲਾਸ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰਨ ਵਿੱਚ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ ।
01:18 ‘Class-name’, ਕਲਾਸ ਦਾ ਨਾਮ ਹੈ ।
01:21 ‘Public’, ‘private’ ਅਤੇ ‘protected’ ਐਕਸੈੱਸ ਸਪੈਸੀਫਾਇਰ ਹਨ ।
01:26 ਅਤੇ ਇੱਥੇ ਅਸੀਂ ਉਹ ਡਾਟਾ ਮੈਂਬਰਸ ਅਤੇ ਉਹ ਮੈਂਬਰ ਫੰਕਸ਼ਨਸ ਜਿਵੇਂ ਪਬਲਿਕ, ਪ੍ਰਾਇਵੇਟ ਅਤੇ ਪ੍ਰੋਟੇਕਟੇਡ ਪਰਿਭਾਸ਼ਿਤ ਕੀਤੇ ਹਨ ।
01:34 ਅਸੀਂ ਕਲਾਸ ਨੂੰ ਇਸ ਤਰ੍ਹਾਂ ਨਾਲ ਬੰਦ ਕਰਦੇ ਹਾਂ ।
01:37 ਹੁਣ ਇੱਕ ਉਦਾਹਰਣ ਵੇਖਦੇ ਹਾਂ ।
01:39 ਮੈਂ ਐਡੀਟਰ ‘ਤੇ ਕੋਡ ਪਹਿਲਾਂ ਟਾਈਪ ਕਰ ਲਿਆ ਹੈ ।
01:42 ਮੈਂ ਇਸ ਨੂੰ ਖੋਲ੍ਹਾਂਗਾ ।
01:44 ਨੋਟ ਕਰੋ ਕਿ ਸਾਡੀ ਫਾਇਲ ਦਾ ਨੇਮ ‘class hyphen obj dot cpp’ ਹੈ ।
01:50 ਇਸ ਉਦਾਹਰਣ ਵਿੱਚ ਅਸੀਂ ਕਲਾਸ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਵਰਗ ਦੇ ਏਰੀਆ ਦੀ ਗਿਣਤੀ ਕਰਾਂਗੇ ।
01:56 ਮੈਂ ਹੁਣ ਕੋਡ ਸਮਝਦਾ ਹਾਂ ।
01:58 ਇਹ ‘iostream’ ਸਾਡੀ ‘header file’ ਹੈ ।
02:02 ਇੱਥੇ ਅਸੀਂ ‘std namespace’ ਦੀ ਵਰਤੋਂ ਕਰ ਰਹੇ ਹਾਂ ।
02:06 ਇਹ ‘square’ ਨਾਂ ਵਾਲੀ ‘ਕਲਾਸ’ ਦੇ ਲਈ ਐਲਾਨ ਹੈ ।
02:10 ਇੱਥੇ ਮੈਂ ਕੋਈ ‘access specifier’ ਐਲਾਨ ਨਹੀਂ ਕੀਤਾ ਹੈ ।
02:14 ਇਸ ਲਈ: ਡਿਫਾਲਟ ਰੂਪ ਤੋਂ ਇਹ ਪ੍ਰਾਇਵੇਟ ਹੈ ।
02:17 ਇਸ ਲਈ ਵੈਰੀਏਬਲ ‘x’ ‘class square’ ਦਾ ‘ਪ੍ਰਾਇਵੇਟ’ ਮੈਂਬਰ ਹੈ ।
02:22 ਇਹ ‘public specifier’ ਹੈ ।
02:25 ਫੰਕਸ਼ਨ ‘ਏਰੀਆ’ ‘public’ ਫੰਕਸ਼ਨ ਹੈ ।
02:28 ਅਤੇ ਇਸ ਤਰ੍ਹਾਂ ਨਾਲ ਅਸੀਂ ਕਲਾਸ ਬੰਦ ਕਰਦੇ ਹਾਂ ।
02:31 ਹੁਣ ਐਕਸੈੱਸ ਸਪੈਸੀਫਾਇਰ ਦੇ ਬਾਰੇ ਵਿੱਚ ਜ਼ਿਆਦਾ ਜਾਣਨ ਦੇ ਲਈ ਆਪਣੀ ਸਲਾਇਡਸ ‘ਤੇ ਵਾਪਸ ਆਉਂਦੇ ਹਾਂ ।
02:36 ‘Public specifier’
02:39 ‘Public specifier’ ‘data’ ਨੂੰ ਕਲਾਸ ਦੇ ਬਾਹਰ ਐਕਸੈੱਸ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ ।
02:44 ਇੱਕ ‘public’ ਮੈਂਬਰ ਪ੍ਰੋਗਰਾਮ ਵਿੱਚ ਕਿਤੇ ਵੀ ਵਰਤਿਆ ਜਾ ਸਕਦਾ ਹੈ ।
02:49 ‘Private specifier’
02:51 ‘Private’ ਦੀ ਤਰ੍ਹਾਂ ਐਲਾਨ ਮੈਂਬਰਸ ‘ਕਲਾਸ’ ਦੇ ਬਾਹਰ ਵਰਤੇ ਜਾਂ ਐਕਸੈੱਸ ਨਹੀਂ ਕੀਤੇ ਜਾ ਸਕਦੇ ਹਨ ।
02:57 ‘Private’ ਮੈਂਬਰਸ ਕੇਵਲ ‘ਕਲਾਸ’ ਦੇ ਮੈਂਬਰਸ ਦੇ ਦੁਆਰਾ ਵਰਤੇ ਜਾ ਸਕਦੇ ਹਨ ।
03:03 ‘Protected specifier’
03:05 ‘Protected’ ਮੈਂਬਰਸ ‘ਕਲਾਸ’ ਦੇ ਬਾਹਰ ਤੋਂ ਐਕਸੈੱਸ ਨਹੀਂ ਕੀਤੇ ਜਾ ਸਕਦੇ ਹਨ ।
03:10 ਇਹ ‘derived’ ‘ਕਲਾਸ’ ਨਾਲ ਐਕਸੈੱਸ ਕੀਤੇ ਜਾ ਸਕਦੇ ਹਨ ।
03:13 ਹੁਣ ਆਪਣੇ ਪ੍ਰੋਗਰਾਮ ‘ਤੇ ਵਾਪਸ ਆਉਂਦੇ ਹਾਂ ।
03:16 ਇੱਥੇ ਇਸ ਸਟੇਟਮੈਂਟ ਵਿੱਚ ਸਾਡੇ ਕੋਲ ‘class’ ਨੇਮ ਹੈ ।
03:21 ‘scope resolution operator’ ਅਤੇ ‘function name’
03:25 ਸਾਨੂੰ ਇਹ ਓਪਰੇਟਰ ਦੀ ਵਰਤੋਂ ਕਰਨੀ ਜ਼ਰੂਰੀ ਹੈ ।
03:27 ਇਹ ਸਪੱਸ਼ਟ ਕਰਦਾ ਹੈ ਕਿ ਫੰਕਸ਼ਨ ‘ਏਰੀਆ’ ਗਲੋਬਲ ਫੰਕਸ਼ਨ ਨਹੀਂ ਹੈ ।
03:33 ਇਹ ‘ਕਲਾਸ’ ਸਕਵਾਇਰ ਦਾ ਇੱਕ ਮੈਂਬਰ ਫੰਕਸ਼ਨ ਹੈ ।
03:36 ਇੱਥੇ ਅਸੀਂ ‘int a’ ਆਰਗਿਊਮੈਂਟ ਪਾਸ ਕੀਤਾ ਹੈ ।
03:40 ਹੁਣ ‘scope resolution operator’ ਦੇ ਬਾਰੇ ਵਿੱਚ ਜ਼ਿਆਦਾ ਜਾਣਨ ਦੇ ਲਈ ਸਲਾਇਡਸ ‘ਤੇ ਵਾਪਸ ਆਉਂਦੇ ਹਾਂ ।
03:46 ਇਹ ਛੁਪੇ ਹੋਏ ‘data’ ਨੂੰ ਐਕਸੈੱਸ ਕਰਨ ਵਿੱਚ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ ।
03:49 ਫੰਕਸ਼ਨ ਜਾਂ ਵੈਰੀਏਬਲ ਨੂੰ ਉਸ ਦੇ ਨਾਮ ਦੇ ਨਾਲ ਐਕਸੈੱਸ ਕਰਨ ਲਈ ਅਸੀਂ ਸਕੋਪ ਰੇਸੋਲੁਸ਼ਨ ਓਪਰੇਟਰ ‘::’ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹਾਂ ।
03:56 ਮੰਨਿਆ ਕਿ ‘local’ ਵੈਰੀਏਬਲ ਅਤੇ ‘global’ ਵੈਰੀਏਬਲ ਦੇ ਨਾਮ ਸਮਾਨ ਹਨ ।
04:01 ਪ੍ਰਮੁੱਖਤਾ ‘local’ ਵੈਰੀਏਬਲ ਨੂੰ ਮਿਲਦੀ ਹੈ ।
04:05 ਅਸੀਂ ‘::’ (ਸਕੋਪ ਰੇਸੋਲੁਸ਼ਨ ਓਪਰੇਟਰ) ਦੀ ਵਰਤੋਂ ਕਰਕੇ ‘global’ ਵੈਰੀਏਬਲ ਐਕਸੈੱਸ ਕਰ ਸਕਦੇ ਹਾਂ ।
04:10 ਹੁਣ ਆਪਣਾ ਪ੍ਰੋਗਰਾਮ ਖੋਲੋ ।
04:12 ਇੱਥੇ a ਦੀ ਵੈਲਿਊ x ਵਿੱਚ ਇੱਕਠੀ ਹੁੰਦੀ ਹੈ ।
04:17 ਫਿਰ ਅਸੀਂ ਸਕਵਾਇਰ ਦਾ ਏਰੀਆ ਰਿਟਰਨ ਕਰਦੇ ਹਾਂ ।
04:20 ਇੱਥੇ x ਇੱਕ ‘private’ ਮੈਂਬਰ ਹੈ ।
04:22 ਪ੍ਰਾਇਵੇਟ ਪੈਰਾਮੀਟਰਸ ਐਕਸੈੱਸ ਕਰਨ ਦੇ ਲਈ ਅਸੀਂ ਪਬਲਿਕ ਮੈਂਬਰ ‘a’ ਦੀ ਵਰਤੋਂ ਕੀਤੀ ।
04:27 ‘private’ ਮੈਂਬਰਸ ਹਮੇਸ਼ਾ ਛੁਪੇ ਰਹਿੰਦੇ ਹਨ ।
04:30 ਇਹ ਸਾਡਾ ‘main function’ ਹੈ ।
04:33 ਇੱਥੇ, ‘sqr class square’ ਦਾ ਆਬਜੈਕਟ ਹੈ ।
04:37 ਇਸ ਤਰ੍ਹਾਂ ਨਾਲ ਅਸੀਂ ਇੱਕ ‘object’ ਬਣਾਉਂਦੇ ਹਾਂ ।
04:40 ‘class – name’ ਦੇ ਅੱਗੇ ‘object – name’
04:43 ਇੱਥੇ ਅਸੀਂ ‘ਆਬਜੈਕਟ sqr’ ਅਤੇ ਇੱਕ ‘.(ਡਾਟ) ਓਪਰੇਟਰ’ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਫੰਕਸ਼ਨ ‘ਏਰੀਆ’ ਨੂੰ ਕਾਲ ਕਰਦੇ ਹਾਂ ।
04:50 ਫਿਰ ਅਸੀਂ ਆਰਗੁਮੈਂਟ ਨੂੰ 4 ਦਿੰਦੇ ਹਾਂ ।
04:53 ਅਸੀਂ x ਦੀ ਵੈਲਿਊ ਨੂੰ 4 ਸੈੱਟ ਕਰਦੇ ਹਾਂ ।
04:57 ਇਹ ਸਾਡੀ ਰਿਟਰਨ ਸਟੇਟਮੈਂਟ ਹੈ ।
04:59 ਹੁਣ ‘save’ ‘ਤੇ ਕਲਿਕ ਕਰੋ ।
05:00 ਹੁਣ ਪ੍ਰੋਗਰਾਮ ਨੂੰ ਚਲਾਉਂਦੇ ਹਾਂ ।
05:03 ਆਪਣੇ ਕੀਬੋਰਡ ‘ਤੇ ਇੱਕੋ-ਸਮੇਂ ‘Ctrl, Alt ਅਤੇ T’ ਕੀਜ ਦਬਾਕੇ ਟਰਮੀਨਲ ਵਿੰਡੋ ਖੋਲੋ ।
05:11 ਕੰਪਾਇਲ ਕਰਨ ਦੇ ਲਈ ਟਾਈਪ ਕਰੋ ‘g++ ਸਪੇਸ ਕਲਾਸ hyphen obj ਡਾਟ cpp ਸਪੇਸ hyphen o ਸਪੇਸ ਕਲਾਸ’
05:20 ਐਂਟਰ ਦਬਾਓ ।
05:22 ਟਾਈਪ ਕਰੋ ‘./class’ (ਡਾਟ ਸਲੈਸ਼ ਕਲਾਸ)
05:24 ਐਂਟਰ ਦਬਾਓ । ਆਉਟਪੁਟ ਦਿਖਾਈ ਦਿੰਦੀ ਹੈ:
05:28 ‘Area of the square is 16’
05:30 ਹੁਣ ਆਪਣੇ ਪ੍ਰੋਗਰਾਮ ‘ਤੇ ਵਾਪਸ ਆਉਂਦੇ ਹਾਂ ।
05:35 ਹੁਣ ਤੱਕ ਅਸੀਂ ਵੇਖਿਆ,
05:37 ‘data’ ਅਤੇ ‘functions’ ‘ਕਲਾਸ’ ਵਿੱਚ ਇਕੱਠੇ ਸੰਯੁਕਤ ਹੁੰਦੇ ਹਨ ।
05:41 ‘class’ ਸਿੰਗਲ ਯੂਨਿਟ ਹੈ ।
05:44 ਜਿਸ ਵਿੱਚ ਉਨ੍ਹਾਂ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਡਾਟਾ ਅਤੇ ਫੰਕਸ਼ਨ ਨੂੰ ਗੁਰੱਪ ਕੀਤਾ ਜਾਂਦਾ ਹੈ ।
05:49 ਇਹ ਮੈਕੇਨਿਯਮ ‘Encapsulation’ ਕਹਾਉਂਦਾ ਹੈ ।
05:53 ਫਿਰ ਅਸੀਂ ‘private’ ਅਤੇ ‘public’ ਮੈਂਬਰਸ ਦੇ ਨਾਲ ਕਲਾਸ ਵੇਖੀ ਹੈ ।
05:59 ‘Private’ ਡਾਟਾ ਲੁਕਿਆ ਹੋਇਆ ਹੈ ।
06:02 ਇਸ ਨੂੰ ‘class’ ਦੇ ਬਾਹਰ ਐਕਸੈੱਸ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ ।
06:05 ਇਹ ਮੇਕਨਿਯਮ ‘Data abstraction’ ਕਹਾਉਂਦਾ ਹੈ ।
06:09 ‘interface’ ਦਿਸਦਾ ਹੈ ‘ਤੇ ਲਾਗੂ ਕੀਤਾ ਲੁਕਿਆ ਰਹਿੰਦਾ ਹੈ ।
06:14 ਇਹ ਸਾਨੂੰ ਇਸ ਟਿਊਟੋਰਿਅਲ ਦੇ ਅਖੀਰ ਵਿੱਚ ਲੈ ਕੇ ਜਾਂਦਾ ਹੈ ।
06:17 ਹੁਣ ਆਪਣੀ ਸਲਾਇਡਸ ‘ਤੇ ਵਾਪਸ ਜਾਂਦੇ ਹਾਂ ।
06:19 ਇਸ ਦਾ ਸਾਰ ਕਰਦੇ ਹਾਂ ।
06:20 ਇਸ ਟਿਊਟੋਰਿਅਲ ਵਿੱਚ ਅਸੀਂ ਸਿੱਖਿਆ,
06:23 “Encapsulation Data Abstraction”
06:25 “Private” ਮੈਂਬਰਸ
06:27 int x;
06:29 “Public” ਫੰਕਸ਼ਨਸ int area (int);
06:32 “Classes” ਕਲਾਸ ਸਕਵਾਇਰ
06:35 ਆਬਜੈਕਟ ਬਣਾਉਣਾ
06:37 “square sqr”
06:39 “object” “sqr dot area ()” ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਇੱਕ ਫੰਕਸ਼ਨ ਕਾਲ ਕਰਨਾ ।
06:43 ਇੱਕ ਨਿਰਧਾਰਤ ਕੰਮ ਵਿੱਚ ਇੱਕ ਪ੍ਰੋਗਰਾਮ ਲਿਖਕੇ ਦਿੱਤੇ ਹੋਏ ਸਰਕਲ ਦਾ ਪੈਰੀਮੀਟਰ (perimeter) ਜਾਣੋ ।
06:49 http://spoken-tutorial.org/What\_is\_a\_Spoken\_Tutoria ‘ਤੇ ਉਪਲੱਬਧ ਵੀਡੀਓ ਨੂੰ ਵੇਖੋ ।
06:52 ਇਹ ਸਪੋਕਨ ਟਿਊਟੋਰਿਅਲ ਪ੍ਰੋਜੈਕਟ ਦਾ ਸਾਰ ਕਰਦਾ ਹੈ ।
06:55 ਚੰਗੀ ਬੈਂਡਵਿਡਥ ਨਾ ਮਿਲਣ ‘ਤੇ ਤੁਸੀਂ ਇਸਨੂੰ ਡਾਊਂਨਲੋਡ ਕਰਕੇ ਵੀ ਵੇਖ ਸਕਦੇ ਹੋ ।
07:00 ਸਪੋਕਨ ਟਿਊਟੋਰਿਅਲ ਪ੍ਰੋਜੇਕਟ ਟੀਮ :
07:02 ਸਪੋਕਨ ਟਿਊਟੋਰਿਅਲਸ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਵਰਕਸ਼ਾਪਾਂ ਚਲਾਉਂਦੀ ਹੈ ।
07:05 ਆਨਲਾਇਨ ਟੈਸਟ ਪਾਸ ਕਰਨ ਵਾਲਿਆ ਨੂੰ ਪ੍ਰਮਾਣ ਪੱਤਰ ਵੀ ਦਿੰਦੇ ਹਨ ।
07:09 ਜ਼ਿਆਦਾ ਜਾਣਕਾਰੀ ਲੈਣ ਦੇ ਲਈ, ਕ੍ਰਿਪਾ ਕਰਕੇ contact@spoken-tutorial.org ਨੂੰ ਲਿਖੋ ।
07:16 ਸਪੋਕਨ ਟਿਊਟੋਰਿਅਲ ਪ੍ਰੋਜੇਕਟ ਟਾਕ - ਟੂ - ਅ ਟੀਚਰ ਪ੍ਰੋਜੈਕਟ ਦਾ ਹਿੱਸਾ ਹੈ ।
07:20 ਇਹ ਭਾਰਤ ਸਰਕਾਰ ਦੇ ਐਮਐਚਆਰਡੀ ਦੇ “ਆਈਸੀਟੀ ਵਲੋਂ ਰਾਸ਼ਟਰੀ ਸਾਖਰਤਾ ਮਿਸ਼ਨ” ਦੁਆਰਾ ਪ੍ਰਮਾਣਿਤ ਹੈ ।
07:26 ਇਸ ‘ਤੇ ਜ਼ਿਆਦਾ ਜਾਣਕਾਰੀ ਹੇਠਾਂ ਦਿੱਤੇ ਲਿੰਕ ‘ਤੇ ਉਪਲੱਬਧ ਹੈ । http://spoken-tutorial.org/NMEICT-Intro
07:31 ਆਈ.ਆਈ.ਟੀ ਬੰਬੇ ਤੋਂ ਮੈਂ ਨਵਦੀਪ ਤੁਹਾਡੇ ਤੋਂ ਇਜਾਜ਼ਤ ਲੈਂਦਾ ਹਾਂ । ਸਾਡੇ ਨਾਲ ਜੁੜਨ ਲਈ ਧੰਨਵਾਦ । }

Contributors and Content Editors

Navdeep.dav