Hôm nay ngồi trên lớp làm bài mới phát hiện ra 1 lỗi khó chịu T_T, khi ta đặt function prototype trên main hoặc dưới main(). Tìm mãi không ra lỗi chỉ vì 1 chữ i T_T.
C++ Code:
  1. #include <iostream>
  2. #include <fstream>
  3.  
  4. bool read_file(std::fstream& iff);
  5.  
  6. bool read_file(std::ifstream& iff){
  7.  iff.open("abc.txt", std::ios::in);
  8.  if(!iff){
  9.   std::cout << "...file error detected !\n";
  10.   return false;
  11.  }
  12.  std::cout << "...reading in process.\n";
  13.  return true;
  14. }
  15.  
  16. int main(){
  17.  std::ifstream iss;
  18.  read_file(iss);
  19.  
  20.  return 0;
  21. }


Code này hoàn toàn ok, nếu main đặt dưới cùng, nhưng nếu để nó lên đầu thì sẽ thấy nó bảo linking error, vì cái prototype nhận vào 1 ifstream chứ không phải fstream, khi viết 1 hàm thì nhìn ra rất nhanh, nhưng cả 4, 5 class thì sẽ thấy bị nó hành đến cỡ nào. Visual C++ compile không hề đưa ra 1 warning, mà chỉ bảo linking error. Khốn nạn thế cơ đấy T_T, mình chia sẻ lỗi này tuy cũng không đáng gì nhưng mong các bạn biết mà để ý. Chắc chẳng có ai ngu hơn mình T_T !