Tandatangan jenis dalam pengisytiharan fungsi C++ menentukan jenis input dan output fungsi Dengan memahami peraturan terbitan jenis, anda boleh menulis kod yang boleh dipercayai dan boleh diselenggara. Peraturan termasuk: Potongan templat: Parameter jenis disimpulkan daripada panggilan fungsi Inferens jenis automatik: Jenis disimpulkan daripada pemula atau nilai pulangan Jenis inferens: Pengkompil membuat kesimpulan jenis walaupun tidak dinyatakan secara eksplisit Spesifikasi jenis eksplisit: Pembangun secara eksplisit menentukan Tandatangan Jenis
Taip Tandatangan dalam Pengisytiharan Fungsi C++: Memahami Pelbagai Peraturan Potongan Jenis
Pengenalan
Tandatangan jenis merupakan aspek utama input dan fungsi output yang ditentukan. Dengan memahami peraturan jenis inferens, pembangun boleh menulis kod yang boleh dipercayai dan boleh diselenggara. Artikel ini akan menyelidiki tandatangan jenis dalam pengisytiharan fungsi dalam C++ dan menunjukkan pelbagai peraturan inferens jenis melalui kes praktikal.
Peraturan Potongan Jenis
Pengkompil C++ boleh menggunakan peraturan berikut untuk menyimpulkan jenis parameter fungsi:
auto
声明变量或函数参数时,类型可以从初始化器或函数返回值中推导出。int
赋值给未声明类型的变量。实战案例
案例 1:模板推导
template<typename T> int sum(const std::vector<T>& numbers) { ... // 计算和返回数字之和 }
在这段代码中,sum
函数是一个模板,其类型参数 T
从函数调用中推导出:
std::vector<int> numbers = {1, 2, 3}; int result = sum(numbers); // T 被推导出为 int
案例 2:自动类型推导
auto sum(const std::vector<int>& numbers) { ... // 计算和返回数字之和 }
在这里,sum
函数使用 auto
来声明返回值的类型。编译器将从函数内部的计算推导出类型为 int
:
auto result = sum({1, 2, 3}); // result 被推导出为 int
案例 3:类型推断
int x = 10; auto y = x + 10;
在这个例子中,变量 x
声明为 int
,而 y
声明为 auto
。编译器将推断出 y
的类型也为 int
。
案例 4:显式类型指定
如果其他规则无法推导出类型,开发人员可以显式指定类型签名:
int sum(const std::vector<int>& numbers) -> int { ... // 计算和返回数字之和 }
在这里,箭头 (->) 后面的 int
显式指定了函数的返回值类型为 int
int
kepada pembolehubah jenis yang tidak diisytiharkan. 🎜🎜🎜Spesifikasi jenis eksplisit: 🎜Jika jenis tidak boleh disimpulkan menggunakan peraturan lain, pembangun boleh menentukan tandatangan jenis secara eksplisit. 🎜🎜🎜Kes praktikal🎜🎜🎜🎜Kes 1: Derivasi templat🎜🎜rrreee🎜Dalam kod ini, fungsi sum
ialah templat dan parameter jenisnya ialah T Disimpulkan daripada panggilan fungsi: 🎜rrreee🎜🎜Kes 2: Inferens jenis automatik 🎜🎜rrreee🎜Di sini, fungsi <code>sum
menggunakan auto
untuk mengisytiharkan jenis pulangan nilai . Pengkompil akan menyimpulkan jenis sebagai int
daripada pengiraan di dalam fungsi: 🎜rrreee🎜🎜Kes 3: Jenis Inferens 🎜🎜rrreee🎜Dalam contoh ini, pembolehubah x
diisytiharkan sebagai int
, manakala y
diisytiharkan sebagai auto
. Pengkompil akan membuat kesimpulan bahawa y
juga daripada jenis int
. 🎜🎜🎜Kes 4: Spesifikasi jenis eksplisit🎜🎜🎜Jika peraturan lain tidak dapat menyimpulkan jenis tersebut, pembangun boleh menyatakan secara eksplisit tandatangan jenis: 🎜rrreee🎜Di sini, int selepas kod anak panah (->)> secara eksplisit menyatakan bahawa jenis nilai pulangan fungsi ialah <code>int
. 🎜Atas ialah kandungan terperinci Jenis tandatangan dalam pengisytiharan fungsi C++: Memahami pelbagai peraturan potongan jenis. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!