Mi a hiba ebben a C++ programban?
#include <iostream>
#include <iterator>
#include <iosfwd>
using namespace std;
class OstreamIteratorCnt:public ostream_iterator <int>
{
int op_plus_count;
int op_multipl_count;
int op_equal_count;
public:
OstreamIteratorCnt (): ostream_iterator (basic_ostream <char,char_traits <char> > &__s, const char *__c)
{
op_plus_count= 0;
op_multipl_count= 0;
op_equal_count= 0;
}
OstreamIteratorCnt& operator++ ()
{
op_plus_count++;
return (*this);
}
OstreamIteratorCnt& operator* ()
{
op_multipl_count++;
return (*this);
}
OstreamIteratorCnt& operator= (const int &__value)
{
*this= ostream_iterator <int>:: operator=();
op_equal_count++;
return (*this);
}
void count_kiir ()
{
cout<<"Operator+: "<<op_plus_count<<endl;
cout<<"Operator*: "<<op_multipl_count<<endl;
cout<<"Operator=: "<<op_equal_count<<endl;
}
};
int main()
{
int A[]={0,6,1,4,63,21,87};
int db=sizeof(A)/sizeof(int);
OstreamIteratorCnt oi(cout,"\t");
copy(A,A+db,oi);
cout<<endl<<"Az egyes operatorok ennyiszer lettek meghivva az oi objektumban:"<<endl;
count_kiir ();
return 0;
}
Segíts, hogy segíthessünk:
- fordítási hibáról van szó? mi a hibaüzenet?
- futtatási hibáról van szó? mi a hibaüzenet vagy mi működik másképp mint szeretnéd?
A feladat:
Melyik operátora hányszor hívódott meg az OutputIteratornak?
Egészítsd ki az ostream_iterator -t, hogy az számolja a függvényhívásokat.
Használd a copy fv.-ben ezt a saját OstreamIteratorCnt iterátort.
A copy lefutása után írd ki, mi hányszor hívódott meg.
In constructor 'OstreamIteratorCnt::OstreamIteratorCnt()':|
error: expected primary-expression before '&' token|
error: '__s' was not declared in this scope|
error: expected primary-expression before 'const'|
In member function 'OstreamIteratorCnt& OstreamIteratorCnt::operator=(const int&)':|
error: no matching function for call to 'OstreamIteratorCnt::operator=()'|
note: candidates are:|
c:\mingw\lib\gcc\mingw32\4.8.1\include\c++\bits\stream_iterator.h|193|note: std::ostream_iterator<_Tp, _CharT, _Traits>& std::ostream_iterator<_Tp, _CharT, _Traits>::operator=(const _Tp&) [with _Tp = int; _CharT = char; _Traits = std::char_traits<char>]|
c:\mingw\lib\gcc\mingw32\4.8.1\include\c++\bits\stream_iterator.h|193|note: candidate expects 1 argument, 0 provided|
c:\mingw\lib\gcc\mingw32\4.8.1\include\c++\bits\stream_iterator.h|154|note: std::ostream_iterator<int>& std::ostream_iterator<int>::operator=(const std::ostream_iterator<int>&)|
c:\mingw\lib\gcc\mingw32\4.8.1\include\c++\bits\stream_iterator.h|154|note: candidate expects 1 argument, 0 provided|
In function 'int main()':|
error: no matching function for call to 'OstreamIteratorCnt::OstreamIteratorCnt(std::ostream&, const char [2])'|
note: candidates are:|
note: OstreamIteratorCnt::OstreamIteratorCnt()|
note: candidate expects 0 arguments, 2 provided|
note: OstreamIteratorCnt::OstreamIteratorCnt(const OstreamIteratorCnt&)|
note: candidate expects 1 argument, 2 provided|
note: OstreamIteratorCnt::OstreamIteratorCnt(OstreamIteratorCnt&&)|
note: candidate expects 1 argument, 2 provided|
error: 'count_kiir' was not declared in this scope|
||=== Build failed: 6 error(s), 0 warning(s) (0 minute(s), 3 second(s)) ===|
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!