কেন বিন্দু পরিবর্তে ডাবল কোলন?


19

এটি গুজব রটে যে প্রথম দিকে সি ++ বাস্তবায়নের নাম স্পেস অ্যাক্সেসের জন্য ডট অপারেটর রয়েছে। একটি মতামত রয়েছে যে ডটটি আধুনিক ডাবল কোলন অপারেটরের পক্ষে আরও সুবিধাজনক।

ডাবল কোলন প্রবর্তনের পিছনে যুক্তি কী ছিল?


3
আমার মাথার শীর্ষে, সি ++ আপনাকে বর্তমান নেমস্পেসের পরিবর্তে গ্লোবাল নেমস্পেসে ::symbolসন্ধান করতে বাধ্য করতে দেয় symbol, সুতরাং এটি অন্তত একটি জিনিস যা খুব বিভ্রান্ত দেখাচ্ছে এবং সম্ভবত ভাষায় আরও সিনট্যাক্টিকাল অস্পষ্টতার পরিচয় দেয় যদি পরিবর্তে ডট অপারেটর ব্যবহার করা হয়েছিল।
Ixrec

14
:: :: ভয়াবহ :: কুৎসিত বিস্তার :: এর :: সি ++ নেমস্পেস :: রেজোলিউশন :: সর্বত্র অপারেটর :: কোলন :: ক্যান্সার হিসাবে পরিচিত।
ম্যাসন হুইলারের

1
আমার ধারণা, এটি সিনেমিক বিশ্লেষকের মধ্যে বিভ্রান্তির সৃষ্টি করেছিল। পদ্ধতির নামের উপসর্গের জন্য বিন্দুটিও ব্যবহৃত হয়, এটি একটি দুর্দান্ত অনুরূপ ধারণা এবং এটি আলাদা করতে শক্ত হতে পারে। এটি ঠিক করার একটি পরিষ্কার উপায় way
রাপলি অ্যান্ড্রেস


5
সিটিতে ম্যাসন হুইলারের বোকামি আক্রমণগুলির ভয়াবহ কুৎসিত প্রচারের কোনও নাম নেই, কারণ এই জাতীয় মন্দটিকে অবশ্যই কোনও নাম দিয়ে মর্যাদাবান করা উচিত নয়!
জেরি কফিন

উত্তর:


14

জুলস দ্বারা পর্যবেক্ষণ হিসাবে এটি সত্য যে শুরুর সি ++ বাস্তবায়ন (সিফ্রন্ট প্রাক -১.০) স্কোপ সনাক্তকরণের জন্য একটি বিন্দু ছিল।

ক্লাস (1980) সি-তে একটি বিন্দুও ব্যবহৃত হয়েছিল । প্রকৃতপক্ষে এটি ক্লাসগুলির একটি সহজ স্নিপেট : সি ভাষার জন্য একটি অ্যাবস্ট্রাক্ট ডেটা টাইপ সুবিধা 1 :

class stack {
    char    s[SIZE];  /* array of characters */
    char *  min;      /* pointer to bottom of stack */
    char *  top;      /* pointer to top of stack */
    char *  max;      /* pointer to top of allocated space */
    void    new();    /* initialization function (constructor) */
public:
    void push(char);
    char pop();
};

char stack.pop()
{
    if (top <= min) error("stack underflow");
    return *(−−top);
}

(কোডটি কীভাবে সদস্য ফাংশনগুলি সাধারণত "অন্য কোথাও" সংজ্ঞায়িত করা হয়েছিল তার উদাহরণ)

::সংযোজন অন্যতম ক্লাস সঙ্গে সি সি উত্পাদন ++, দেখা করিয়েছে।

কারণ স্ট্রোস্ট্রুপ নিজেই দিয়েছেন:

সি সহ ক্লাসে, একটি শ্রেণির সদস্যতা প্রকাশের পাশাপাশি কোনও নির্দিষ্ট বস্তুর সদস্যের নির্বাচন প্রকাশ করার জন্য একটি বিন্দু ব্যবহার করা হত।

এটি কিছুটা ছোটখাটো বিভ্রান্তির কারণ ছিল এবং অস্পষ্ট উদাহরণগুলি তৈরি করতেও এটি ব্যবহার করা যেতে পারে। এটিকে হ্রাস করতে ::ক্লাসের সদস্যতা বোঝানো .হয়েছিল এবং অবজেক্টের সদস্যতার জন্য একচেটিয়া ধরে রাখা হয়েছিল

( সি ++ এর একটি ইতিহাস: 1979−1991 [2] পৃষ্ঠা 21 - § 3.3.1)


  1. বাজর্ন স্ট্রাস্ট্রাপ: "ক্লাস: সি ভাষার জন্য একটি অ্যাবস্ট্রাক্ট ডেটা টাইপ সুবিধা" - বেল ল্যাবরেটরিজ কম্পিউটার সায়েন্স টেকনিক্যাল রিপোর্ট সিএসটিআর − 84। 1980 এপ্রিল।

  2. বাজর্ন স্ট্রাস্ট্রুপ: "এ ইতিহাসের সি ++: 1979−1991" - এটিএন্ডটি বেল ল্যাবরেটরিজ মারে হিল, নিউ জার্সি 07974।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.