এখানে সি ++ কোডের একটি অংশ।
এই উদাহরণে, অনেক কোড ব্লক কনস্ট্রাক্টর কলগুলির মতো লাগে। দুর্ভাগ্যক্রমে, ব্লক কোড # 3 নয় (আপনি https://godbolt.org/z/q3rsxn এবং https://cppinsights.io ব্যবহার করে এটি পরীক্ষা করতে পারেন )।
আমি মনে করি, এটি একটি পুরানো সি ++ স্বরলিপি এবং এটি C} (সিএফ # 4) ব্যবহার করে নতুন সি ++ 11 নির্মাণের স্বরলিপিটি ব্যাখ্যা করতে পারে।
T(i)
অর্থের জন্য আপনার কাছে কি ব্যাখ্যা আছে , তবে কোনও নির্মাণকারী সংকেতের খুব কাছে, তবে স্পষ্টতই এতটা আলাদা?
struct T {
T() { }
T(int i) { }
};
int main() {
int i = 42;
{ // #1
T t(i); // new T named t using int ctor
}
{ // #2
T t = T(i); // new T named t using int ctor
}
{ // #3
T(i); // new T named i using default ctor
}
{ // #4
T{i}; // new T using int ctor (unnamed result)
}
{ // #5
T(2); // new T using int ctor (unnamed result)
}
}
নোট: সুতরাং, T(i)
(# 3) সমান T i = T()
;
-Wall
এবং আপনিwarning: parentheses were disambiguated as redundant parentheses around declaration of variable named 'i' [-Wvexing-parse]
ঝনঝন থেকে " " পান বা জিসিসি থেকে কিছুটা কম অনুপ্রাণিত " warning: unnecessary parentheses in declaration of 'i' [-Wparentheses]
" হন ।
T t()
) তবে এত সাধারণ ঘোষণাপূর্ণ প্রকাশের জন্য নয়। অবশ্যই, এটি উদ্বেগজনক হতে পারে ।