S
subramanian100in
Suppose the following program is named x.cpp
#include <iostream>
#include <vector>
using namespace std;
template <class T>
class Vec : public vector<T>
{
public:
vector<T>::iterator begin()
{
cout << "non-const begin() is called" << endl;
return vector<T>->begin();
}
vector<T>::const_iterator begin() const
{
cout << "const begin() is called" << endl;
return vector<T>->begin();
}
};
int main()
{
return 0;
}
When I compile this program with g++ as
g++ -std=c++98 -pedantic -Wall -Wextra x.cpp
I am getting the following compilation errors:
x.cpp:10: error: expected `;' before "begin"
x.cpp:16: error: expected `;' before "vector"
x.cpp:16: error: expected `;' before "begin"
x.cpp:21: error: expected `;' before '}' token
Please help me fix the compilation errors.
Can't we use the base-class iterator and const_iterator types in the
derived class Vec ?
Kindly explain.
Thanks
V.Subramanian
#include <iostream>
#include <vector>
using namespace std;
template <class T>
class Vec : public vector<T>
{
public:
vector<T>::iterator begin()
{
cout << "non-const begin() is called" << endl;
return vector<T>->begin();
}
vector<T>::const_iterator begin() const
{
cout << "const begin() is called" << endl;
return vector<T>->begin();
}
};
int main()
{
return 0;
}
When I compile this program with g++ as
g++ -std=c++98 -pedantic -Wall -Wextra x.cpp
I am getting the following compilation errors:
x.cpp:10: error: expected `;' before "begin"
x.cpp:16: error: expected `;' before "vector"
x.cpp:16: error: expected `;' before "begin"
x.cpp:21: error: expected `;' before '}' token
Please help me fix the compilation errors.
Can't we use the base-class iterator and const_iterator types in the
derived class Vec ?
Kindly explain.
Thanks
V.Subramanian