Trong hướng đối tượng,em thấy từ khóa const dc xài nhiều và cũng có nhiều vị trí khac nhau trong khai báo hàm,mấy anh giải thích dùm em về vị trí và chức năng của từng chỗ khai báo .Em cám ơn.
Từ khóa "const" mục đích là để giúp dễ debug hơn.
- Nếu hàm trong class là const thì không thể dùng phép gán đối với dữ liệu trong class.
- Nếu dữ liệu là const thì không thể dùng phép gán cho dữ liệu đó được.
- Một lợi ích của khác của const là dùng với reference để tránh tạo 1 bản copy của đối tượng lớn. Ví dụ đối tượng truyền vào hàm là 1 class có rất nhiều dữ liệu, nếu truyền bằng copy thì quá ư là lãng phí. Vì vậy truyền const ref sẽ tăng performance.
Ex1 :
C++ Code:
#include <iostream> class Example { private : int data; public : Example( int data ) :data( data ) { } void printData() const { } }; int main() { Example e( 5 ); e.printData(); return 0; }
Ex2
C++ Code:
#include <iostream> #include <string> #include <vector> class Example { private : int i_data; double d_data; char c_data; float f_data; std::string s_data; std::vector< int > v_data; public : Example() { } }; void passByConstRef( const Example& ex ) { << sizeof( &ex ) << " bytes.\n"; } int main() { Example ex; << sizeof( ex ) << " bytes.\n"; passByConstRef( ex ); return 0; }