Dari masa ke masa, sintaks dan corak reka bentuk C++ telah berkembang dengan ketara untuk menyesuaikan diri dengan keperluan pengaturcaraan yang berubah-ubah. Perubahan utama termasuk: Penambahbaikan sintaks: kata kunci automatik, pernyataan skop dan pengaturcaraan meta templat. Corak Reka Bentuk: Singleton, Kaedah Kilang dan Suntikan Ketergantungan. Kes praktikal: Melaksanakan kelas troli beli-belah menggunakan sintaks C++ moden dan corak reka bentuk, menunjukkan aplikasi praktikal kata kunci auto, pernyataan mengehadkan skop, corak tunggal dan corak suntikan kebergantungan. . . Artikel ini akan meneroka beberapa perubahan utama yang membuat peralihan daripada versi lama C++ kepada gaya moden.
Peningkatan sintaks
kata kunci auto: Kata kunci
auto membolehkan pengkompil membuat kesimpulan jenis pembolehubah, dengan itu menghapuskan keperluan untuk menentukan jenis secara manual, menjadikan kod lebih ringkas dan jelas.
Pernyataan skop: Pernyataan skop (menggunakan ruang nama std;) membenarkan akses terus kepada fungsi dan kelas perpustakaan standard tanpa menyatakan awalan ruang nama.
// 旧版本: int sum(int a, int b) { return a + b; } // 现代风格: auto sum(auto a, auto b) { return a + b; }
Kaedah Kilang: Corak Kaedah Kilang menyediakan antara muka untuk mencipta objek tanpa menentukan kelas konkrit, dengan itu meningkatkan fleksibiliti kod.
// 旧版本: Singleton* getSingleton() { static Singleton instance; return &instance; } // 现代风格: class Singleton { public: static Singleton& getInstance() { static Singleton instance; return instance; } };
#include <memory> class Product { public: Product(int id, std::string name, double price) { this->id = id; this->name = name; this->price = price; } int getId() const { return id; } std::string getName() const { return name; } double getPrice() const { return price; } private: int id; std::string name; double price; }; class Cart { public: Cart() { Init(); } void addItem(std::shared_ptr<Product> product) { this->products.push_back(product); } double getTotal() const { return std::accumulate(products.begin(), products.end(), 0.0, [](double acc, std::shared_ptr<Product> p) { return acc + p->getPrice(); }); } private: void Init() { // Dependency injection for testing } std::vector<std::shared_ptr<Product>> products; };
Kesimpulan
Dengan mengguna pakai sintaks moden dan corak reka bentuk, pembangun C++ boleh mencipta kod yang lebih ringkas, boleh diselenggara dan boleh diperluaskan. Evolusi ini memenuhi landskap pembangunan yang berubah-ubah dan menyediakan alat yang lebih berkuasa kepada pembangun untuk menghadapi keperluan aplikasi yang berkembang.Atas ialah kandungan terperinci Evolusi Sintaks dan Corak Reka Bentuk C++: Daripada Versi Lama kepada Gaya Moden. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!