Các hàm thành viên có thể được định nghĩa trong định nghĩa lớp hoặc sử dụng riêng biệt toán tử phân giải phạm vi, ::. Việc xác định một hàm thành viên trong định nghĩa lớp khai báo hàm nội tuyến, ngay cả khi bạn không sử dụng bộ chỉ định nội tuyến. Vì vậy, bạn có thể xác định hàm Volume () như sau:
class Box
{
public:
double length;
double breadth;
double height;
double getVolume(void)
{
return length * breadth * height;
}
};
Nếu bạn muốn, bạn có thể xác định cùng một hàm bên ngoài lớp bằng cách sử dụng toán tử phân giải phạm vi, :: như sau
double Box::getVolume(void)
{
return length * breadth * height;
}
Ở đây, điểm quan trọng duy nhất là bạn sẽ phải sử dụng tên lớp ngay trước toán tử ::. Một hàm thành viên sẽ được gọi bằng cách sử dụng toán tử dấu chấm (.) Trên một đối tượng nơi nó sẽ thao tác dữ liệu liên quan đến đối tượng đó chỉ như sau:
Box myBox;
myBox.getVolume();
(từ: http://www.tutorialspoint.com/cplusplus/cpp_class_member_functions.htm ), cả hai cách đều hợp pháp.
Tôi không phải là một chuyên gia, nhưng tôi nghĩ, nếu bạn chỉ đặt một định nghĩa lớp trong một tệp, thì điều đó không thực sự quan trọng.
nhưng nếu bạn áp dụng một cái gì đó như lớp bên trong, hoặc bạn có nhiều định nghĩa lớp, định nghĩa thứ hai sẽ khó đọc và khó duy trì.
.cpp
tệp riêng biệt .