Thư viện tri thức trực tuyến
Kho tài liệu với 50,000+ tài liệu học thuật
© 2023 Siêu thị PDF - Kho tài liệu học thuật hàng đầu Việt Nam

Quá tải hàm
Nội dung xem thử
Mô tả chi tiết
Chöông 4
Quaù taûi haøm
• Quaù taûi haøm taïo
• Haøm taïo baûn sao
• Haøm vôùi caùc ñoái soá maëc ñònh
• Tính khoâng xaùc ñònh khi quaù taûi haøm
• Ñiaï chæ cuûa haøm quaù taûi
Chöông 4 Quaù taûi haøm 104
104
Chöông 4 Quaù taûi haøm 105
105
I/ Quaù taûi haøm taïo (constructor overloading )
Coù theå quaù taûi haøm taïo cuûa moät lôùp, nhöng khoâng quaù taûi haøm huûy.
Haøm taïo cuûa lôùp phaûi phuø hôïp vôùi caùch maø ñoái töôïng cuûa lôùp ñoù ñöôïc khai baùo. Neáu
khoâng loãi thôøi gian bieân dòch seõ xaûy ra.
Coù 3 lyù do caàn quaù taûi haøm taïo :
+ ñeå coù tính linh hoaït
+ ñeå hoå trôï maûng
+ ñeå taïo caùc haøm taïo baûn sao
Haïn cheá : neáu thöïc hieän quaù taûi nhieàu laàn coù theå taïo ra taùc duïng huûy hoaïi treân lôùp.
• Quaù taûi haøm taïo vôùi khôûi ñaàu moät ñoái töôïng hoaëc khoâng khôûi ñaàu ñoái töôïng
Ví duï 1.1
#include <iostream.h>
class myclass {
int x;
public:
// overload constructor two ways
myclass() { x = 0; } // no initializer
myclass(int n) { x = n; } // initializer
int getx() { return x; }
};
int main()
{
myclass o1(10); // declare with initial value
myclass o2; // declare without initializer
cout << "o1: " << o1.getx() << '\n';
cout << "o2: " << o2.getx() << '\n';
return 0;
}