I have problem with overloading opearator +.
Here is my code:
class Odcinek : public Figura
{
public:
Odcinek(int ile,string imie,char znak): Figura(ile,imie,znak){}
friend Odcinek& operator+(int liczba);
virtual void wypisz() const;
};
Odcinek& operator+(int liczba);
{
Odcinek Od;
Od.ile = Od.ile+liczba;
Od.imie = imie;
Od.znak = znak;
return Od;
}
I want this to work:
Odcinek F3(5,"Odcinek drugi",'*');
F3+3;
||=== Build: Debug in Figura (compiler: GNU GCC Compiler) ===| include\Figura.h|29|error: 'Odcinek& operator+(int)' must have an argument of class or enumerated type| C:\Users\mkkar\Desktop\Programowanie obiektowe ~kolokwium\Figura\main.cpp||In function 'int main()':| C:\Users\mkkar\Desktop\Programowanie obiektowe ~kolokwium\Figura\main.cpp|15|error: no match for 'operator+' (operand types are 'Odcinek' and 'int')| c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\stl_iterator.h|341|note: candidate: template std::reverse_iterator std::operator+(typename std::reverse_iterator::difference_type, const std::reverse_iterator&)| c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\stl_iterator.h|341|note: template argument deduction/substitution failed:| include\Figura.h|29|error: 'Odcinek& operator+(int)' must have an argument of class or enumerated type| C:\Users\mkkar\Desktop\Programowanie obiektowe ~kolokwium\Figura\src\Figura.cpp|67|error: 'Odcinek& operator+(int)' must have an argument of class or enumerated type| C:\Users\mkkar\Desktop\Programowanie obiektowe ~kolokwium\Figura\src\Figura.cpp|68|error: expected unqualified-id before '{' token| C:\Users\mkkar\Desktop\Programowanie obiektowe ~kolokwium\Figura\main.cpp|15|note: mismatched types 'const std::reverse_iterator' and 'int'| c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\stl_iterator.h|1200|note: candidate: template std::move_iterator std::operator+(typename std::move_iterator::difference_type, const std::move_iterator&)| c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\stl_iterator.h|1200|note: template argument deduction/substitution failed:| C:\Users\mkkar\Desktop\Programowanie obiektowe ~kolokwium\Figura\main.cpp|15|note: mismatched types 'const std::move_iterator' and 'int'| c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\basic_string.h|4929|note: candidate: template std::__cxx11::basic_string std::operator+(const std::__cxx11::basic_string&, const std::__cxx11::basic_string&)| c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\basic_string.h|4929|note: template argument deduction/substitution failed:| C:\Users\mkkar\Desktop\Programowanie obiektowe ~kolokwium\Figura\main.cpp|15|note: 'Odcinek' is not derived from 'const std::__cxx11::basic_string'| c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\basic_string.tcc|1147|note: candidate: template std::__cxx11::basic_string std::operator+(const _CharT*, const std::__cxx11::basic_string&)| c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\basic_string.tcc|1147|note: template argument deduction/substitution failed:| C:\Users\mkkar\Desktop\Programowanie obiektowe ~kolokwium\Figura\main.cpp|15|note: mismatched types 'const _CharT*' and 'Odcinek'| c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\basic_string.tcc|1163|note: candidate: template std::__cxx11::basic_string std::operator+(_CharT, const std::__cxx11::basic_string&)| c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\basic_string.tcc|1163|note: template argument deduction/substitution failed:| C:\Users\mkkar\Desktop\Programowanie obiektowe ~kolokwium\Figura\main.cpp|15|note: mismatched types 'const std::__cxx11::basic_string' and 'int'| c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\basic_string.h|4966|note: candidate: template std::__cxx11::basic_string std::operator+(const std::__cxx11::basic_string&, const _CharT*)| c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\basic_string.h|4966|note: template argument deduction/substitution failed:| C:\Users\mkkar\Desktop\Programowanie obiektowe ~kolokwium\Figura\main.cpp|15|note: 'Odcinek' is not derived from 'const std::__cxx11::basic_string'| c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\basic_string.h|4982|note: candidate: template std::__cxx11::basic_string std::operator+(const std::__cxx11::basic_string&, _CharT)| c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\basic_string.h|4982|note: template argument deduction/substitution failed:| C:\Users\mkkar\Desktop\Programowanie obiektowe ~kolokwium\Figura\main.cpp|15|note: 'Odcinek' is not derived from 'const std::__cxx11::basic_string'| c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\basic_string.h|4994|note: candidate: template std::__cxx11::basic_string std::operator+(std::__cxx11::basic_string&&, const std::__cxx11::basic_string&)| c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\basic_string.h|4994|note: template argument deduction/substitution failed:| C:\Users\mkkar\Desktop\Programowanie obiektowe ~kolokwium\Figura\main.cpp|15|note: 'Odcinek' is not derived from 'std::__cxx11::basic_string'| c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\basic_string.h|5000|note: candidate: template std::__cxx11::basic_string std::operator+(const std::__cxx11::basic_string&, std::__cxx11::basic_string&&)| c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\basic_string.h|5000|note: template argument deduction/substitution failed:| C:\Users\mkkar\Desktop\Programowanie obiektowe ~kolokwium\Figura\main.cpp|15|note: 'Odcinek' is not derived from 'const std::__cxx11::basic_string'| c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\basic_string.h|5006|note: candidate: template std::__cxx11::basic_string std::operator+(std::__cxx11::basic_string&&, std::__cxx11::basic_string&&)| c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\basic_string.h|5006|note: template argument deduction/substitution failed:| C:\Users\mkkar\Desktop\Programowanie obiektowe ~kolokwium\Figura\main.cpp|15|note: 'Odcinek' is not derived from 'std::__cxx11::basic_string'| c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\basic_string.h|5018|note: candidate: template std::__cxx11::basic_string std::operator+(const _CharT*, std::__cxx11::basic_string&&)| c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\basic_string.h|5018|note: template argument deduction/substitution failed:| C:\Users\mkkar\Desktop\Programowanie obiektowe ~kolokwium\Figura\main.cpp|15|note: mismatched types 'const _CharT*' and 'Odcinek'| c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\basic_string.h|5024|note: candidate: template std::__cxx11::basic_string std::operator+(_CharT, std::__cxx11::basic_string&&)| c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\basic_string.h|5024|note: template argument deduction/substitution failed:| C:\Users\mkkar\Desktop\Programowanie obiektowe ~kolokwium\Figura\main.cpp|15|note: mismatched types 'std::__cxx11::basic_string' and 'int'| c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\basic_string.h|5030|note: candidate: template std::__cxx11::basic_string std::operator+(std::__cxx11::basic_string&&, const _CharT*)| c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\basic_string.h|5030|note: template argument deduction/substitution failed:| C:\Users\mkkar\Desktop\Programowanie obiektowe ~kolokwium\Figura\main.cpp|15|note: 'Odcinek' is not derived from 'std::__cxx11::basic_string'| c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\basic_string.h|5036|note: candidate: template std::__cxx11::basic_string std::operator+(std::__cxx11::basic_string&&, _CharT)| c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\basic_string.h|5036|note: template argument deduction/substitution failed:| C:\Users\mkkar\Desktop\Programowanie obiektowe ~kolokwium\Figura\main.cpp|15|note: 'Odcinek' is not derived from 'std::__cxx11::basic_string'| ||=== Build failed: 5 error(s), 0 warning(s) (0 minute(s), 1 second(s)) ===|