{[ promptMessage ]}

Bookmark it

{[ promptMessage ]}

C9-Templates - K thut lp trnh Phn III Lp trnh tng qut Chng...

Info iconThis preview shows pages 1–7. Sign up to view the full content.

View Full Document Right Arrow Icon
K thu t l p trình Ph n III: L p trình t ng quát 0101010101010101100001 0101010101010101100001 0101010101010101100001 0101010100101010100101 0101010100101010100101 0101010100101010100101 1010011000110010010010 1010011000110010010010 1010011000110010010010 1100101100100010000010 1100101100100010000010 1100101100100010000010 0101010101010101100001 0101010101010101100001 0101010101010101100001 0101010100101010100101 0101010100101010100101 0101010100101010100101 1010011000110010010010 1010011000110010010010 1010011000110010010010 1100101100100010000010 1100101100100010000010 1100101100100010000010 0101010101010101100001 0101010101010101100001 0101010101010101100001 0101010100101010100101 0101010100101010100101 0101010100101010100101 1010011000110010010010 1010011000110010010010 1010011000110010010010 1100101100100010000010 1100101100100010000010 1100101100100010000010 y = A*x + B*u; x = C*x + d*u; StateController start() stop() LQGController start() stop() Ch ươ ng 9: Khuôn m u hàm và khuôn m u l p 12/25/2007
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full Document Right Arrow Icon
2 Ch ươ ng 9: Khuôn m u hàm và khuôn m u l p N i dung ch ươ ng 9 9.1 Khuôn m u hàm - Vai trò c a khuôn m u hàm - Đị nh ngh ĩ a khuôn m u hàm - S d ng khuôn m u hàm 9.2 Khuôn m u l p - Đị nh ngh ĩ a khuôn m u l p - D n xu t khuôn m u l p - Ví d khuôn m u l p Vector
Background image of page 2
3 Ch ươ ng 9: Khuôn m u hàm và khuôn m u l p 9.1 Khuôn m u hàm (function template) V n ₫ề : Nhi u hàm ch khác nhau v ki u d li u tham s áp d ng, không khác nhau v thu t toán Ví d : int max(int a, int b) { return (a > b)? a : b; } double max(double a, double b) { return (a > b)? a : b; } ... Các ví d khác: các hàm swap, sort, find, select,... B n ch t c a v n ₫ề ? N m ngôn ng l p trình còn th p, ch ư a g n v i t ư duy c a con ng ườ i! Gi i pháp: T ng quát hóa các hàm ch khác nhau v ki u d li u áp d ng thành khuôn m u hàm .
Background image of page 3

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full Document Right Arrow Icon
4 Ch ươ ng 9: Khuôn m u hàm và khuôn m u l p Đị nh ngh ĩ a khuôn m u hàm Ví d t ng quát hóa hàm max ₫ể có th áp d ng cho nhi u ki u d li u khác nhau: template <typename T > T max(T a, T b) { return (a > b)? a : b; } Ví d t ng quát hóa hàm swap: template <class X > void (X& a, X& b) { X temp = a; a = b; b = temp; } M t khuôn m u hàm inline: template <typename T> inline T max(T a, T b) { return (a > b)? a : b;} S d ng t khóa typename ho c class ₫ể khai báo tham s khuôn m u
Background image of page 4
5 Ch ươ ng 9: Khuôn m u hàm và khuôn m u l p Khai báo và s d ng khuôn m u hàm Ví d s d ng khuôn m u hàm max template <class T> T max(T a, T b); template <class T> void swap(T&, T&); void main() { int N1 = 5, N2 = 7; double D1 = 5.0, D2 = 7.0; int N = max(N1,N2); // max<int>(int,int) char c = max('c','a'); // max<char>(char, char) double D = max(D1,D2); // max<double>(double, double) swap(N1,N2); // swap<int>(int&,int&) swap(D1,D2); // swap<double>(double&,double&) D = max(D1,A1); // error: ambiguous N = max('c',A1); // error: ambiguous D = max<double>(D1,A1);// OK: explicit qualification N = max<int>('c',A); // OK: explicit qualification } Khuôn m u hàm Hàm khuôn m u
Background image of page 5

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full Document Right Arrow Icon
6 Ch ươ ng 9: Khuôn m u hàm và khuôn m u l p Kh n ă ng áp d ng khuôn m u hàm Kh n ă ng áp d ng m t khuôn m u hàm là vô t n, nh ư ng không ph i áp d ng ₫ượ c cho t t c các ₫ố i s khuôn m u Ví d : Đ i u ki n ràng bu c ₫ố i v i ki u d li u có th áp d ng trong khuôn m u hàm max là ph i có phép so sánh l n h ơ n (>): template <class T> inline T max(T a, T b) { return (a > b)? a : b;} =>
Background image of page 6
Image of page 7
This is the end of the preview. Sign up to access the rest of the document.

{[ snackBarMessage ]}