Tôi đã tạo một toán tử quá tải cho ++ trong tệp .hpp của tôi và sau đó một hàm gọi nó trong tệp .hpp. Tệp .cpp sau đó gọi hàm nhưng khi hàm nhấn mã ++ nó không chứa toán tử được tái định nghĩa mà thay vào đó sử dụng toán tử vận hành mặc định cho ++. Tại sao nó không sử dụng toán tử quá tải của tôi?Tại sao nó không sử dụng toán tử quá tải của tôi cho ++?
Dưới đây là các nhà khai thác cho ++:
iterator& operator ++() { // pre-increment
std::list<value_type>::iterator i = listOfValues.begin();
advance(i,1);
return &*i;
}
Square_List operator ++ (int) { // post-increment
std::list<value_type>::iterator i = listOfValues.begin();
advance(i,1);
return &*i;
}
Và đây là chức năng sử dụng nó:
template <typename A_>
void testerIncrement(A_ toInc)
{
toInc = listOfValues.begin();
cout << "\n" << *toInc;
++toInc;
cout << "\n" << *toInc;
++toInc;
}
Và cuối cùng cuộc gọi cho các chức năng trong file cpp
ca.testerIncrement(ca.listOfValues.begin());