Mình code các file như sau
SoPhuc.h
C++ Code:
  1. #include <string>
  2. #include <iostream>
  3. using namespace std;
  4. namespace PvKhoa
  5. {
  6.     class SoPhuc
  7.     {
  8.     private:
  9.         long PhanThuc;
  10.         long PhanAo;
  11.     public:
  12.         SoPhuc();
  13.         SoPhuc(long,long);
  14.         void Gan(long,long);
  15.         void Gan(SoPhuc);
  16.         string ToString();
  17.     };
  18.     ostream& operator<<(ostream&,SoPhuc);
  19. }
SoPhuc.cpp
C++ Code:
  1. #include "SoPhuc.h"
  2. using namespace PvKhoa;
  3.  
  4. SoPhuc::SoPhuc()
  5. {
  6.     PhanThuc=0;
  7.     PhanAo=0;
  8. }
  9. void SoPhuc::Gan(long thuc,long ao)
  10. {
  11.     PhanThuc=thuc;
  12.     PhanAo=ao;
  13. }
  14. SoPhuc::SoPhuc(long thuc,long ao)
  15. {
  16.     Gan(thuc,ao);
  17. }
  18. void SoPhuc::Gan(SoPhuc sophuc)
  19. {
  20.     Gan(sophuc.PhanThuc,sophuc.PhanAo);
  21. }
  22. string SoPhuc::ToString()
  23. {
  24.     string str=to_string(PhanThuc);
  25.     if(PhanAo>=0) str+="+";
  26.     str+=to_string(PhanAo)+"i";
  27.     return str;
  28. }
  29. ostream& operator<<(ostream& os,SoPhuc sophuc)
  30. {
  31.     os<<sophuc.ToString();
  32.     return os;
  33. }
Program.cpp
C++ Code:
  1. #include "SoPhuc.h"
  2. using namespace PvKhoa;
  3.  
  4. int main()
  5. {
  6.     SoPhuc sophuc(-3,-5);
  7.     cout<<sophuc;//cái mình muốn là code như thế này
  8.     getchar();
  9. }
Mình biên dịch thì bị báo lỗi
Code:
1>------ Build started: Project: CoutSoPhucCdcv, Configuration: Debug Win32 ------
1>Build started 16/5/2018 6:04:42 Chiều.
1>InitializeBuildStatus:
1>  Touching "Debug\CoutSoPhucCdcv.unsuccessfulbuild".
1>ClCompile:
1>  SoPhuc.cpp
1>Program.obj : error LNK2019: unresolved external symbol "class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl PvKhoa::operator<<(class std::basic_ostream<char,struct std::char_traits<char> > &,class PvKhoa::SoPhuc)" (??6PvKhoa@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@AAV12@VSoPhuc@0@@Z) referenced in function _main
1>F:\Visual Studio 2012\Cpp\SoPhucStl\Debug\CoutSoPhucCdcv.exe : fatal error LNK1120: 1 unresolved externals
1>
1>Build FAILED.
1>
1>Time Elapsed 00:00:00.85
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
rõ ràng là mình đã viết mã cho operator<< ở cuối file SoPhuc.cpp rồi sao nó lại báo lỗi "unresolved external symbol"
mong các cao nhân chỉ giáo.

- - - Nội dung đã được cập nhật ngày 16-05-2018 lúc 07:49 PM - - -

Sau khi lùng sục trên mạng đã tìm ra cách giải quyết, đây
SoPhuc.h
C++ Code:
  1. #include <string>
  2. #include <iostream>
  3. using namespace std;
  4. namespace PvKhoa
  5. {
  6.     class SoPhuc
  7.     {
  8.     private:
  9.         long PhanThuc;
  10.         long PhanAo;
  11.     public:
  12.         SoPhuc();
  13.         SoPhuc(long,long);
  14.         void Gan(long,long);
  15.         void Gan(SoPhuc);
  16.         string ToString();
  17.         friend ostream& operator<<(ostream& os,SoPhuc sophuc)
  18.         {
  19.             os<<sophuc.ToString();
  20.             return os;
  21.         }
  22.     };
  23.     //ostream& operator<<(ostream&,SoPhuc);
  24. }
nhớ xóa định nghĩa hàm này trong SoPhuc.cpp