এখানে, আমরা কিছু c প্রোগ্রাম লিখব যেগুলো c++ এ কম্পাইল হবে না। যদিও c++ কে c-এর উত্তরসূরী হিসাবে বিবেচনা করা হয় যার সমস্ত বৈশিষ্ট্য রয়েছে এবং c কোডের সাথে সামঞ্জস্য রয়েছে তবে কিছু প্রোগ্রাম রয়েছে যা কম্পাইলার করে না বা c++ কম্পাইলারের সাথে কম্পাইল করার সময় একটি সংকলন ত্রুটি দেওয়া হয়।
কিছু সি প্রোগ্রামের একটি তালিকা যা c++ এ কম্পাইল করা হবে না -
-
ঘোষণার আগে একটি ফাংশনে কল করুন − c++ এ, ঘোষণার আগে ফাংশন কল করলে কম্পাইলেশন ত্রুটি পাওয়া যায়। কিন্তু এটি c.
তে কাজ করে
উদাহরণ
#include <stdio.h> int main(){ printHello(); return 0; } void printHello(){ printf("TutorialsPoint"); }
আউটপুট
TutorialsPoint
-
টাইপকাস্টেড পয়েন্টার ব্যবহার করে − যদি আমরা c-এর একটি পয়েন্টারকে অকার্যকর হিসাবে ঘোষণা করি এবং তারপরে অন্যান্য ডেটা ভেরিয়েবল নির্দেশ করতে এই পয়েন্টারটি ব্যবহার করি। এটি কম্পাইলার নিজেই c-এ করা যেতে পারে তবে c++ এ, এই পয়েন্টারগুলিকে টাইপকাস্ট করা দরকার।
উদাহরণ
#include <stdio.h> int main(){ void *ptr; int *ptr2 = ptr; return 0; }
-
সূচনা ছাড়াই ধ্রুবক মান ঘোষণা করা − c-এ, আপনি কোনো মান প্রদান না করেই ধ্রুবক মান ঘোষণা করতে পারেন কিন্তু c++ এ করা হলে এটি একটি ত্রুটি প্রদান করে।
উদাহরণ
#include <stdio.h> int main(){ const int x; printf("%d", x); return 0; }
আউটপুট
0
-
কনস্ট ভেরিয়েবল সহ সাধারণ পয়েন্টার ব্যবহার করা − c++ এ এটি অনুমোদিত নয় যখন c একটি সাধারণ পয়েন্টারের সাথে কনস্ট ভেরিয়েবল ব্যবহারের অনুমতি দেয়।
উদাহরণ
#include <stdio.h> int main(void){ int const x = 3424; int *cptr = &x; printf("value of pointer : %d\n", *cptr); return 0; }
আউটপুট
Value of pointer: 3424
-
পরিবর্তনশীল নাম হিসাবে নির্দিষ্ট কীওয়ার্ড ব্যবহার করা − c প্রোগ্রামিং ল্যাঙ্গুয়েজে ভেরিয়েবল নাম হিসাবে নির্দিষ্ট কীওয়ার্ডের ব্যবহার বৈধ, যেমন c তে কম্পাইল করা হবে কিন্তু c++ তে কম্পাইল করা হবে না।
উদাহরণ
#include <stdio.h> int main(void){ int class = 5; printf("%d", class); }
আউটপুট
5
এগুলি হল সেই কীওয়ার্ডগুলি যেগুলি c++-এ অন্তর্ভুক্ত, আরও কিছু নতুন, মুছে ফেলা, স্পষ্ট, ইত্যাদি৷