私は(しなければならなかった:))数週間前にC ++開発者になりました(以前はいくつかの経験がありましたが、あまり多くはありませんでした.Javaの方が多かったです)、重要なことすべてを学び、できるだけ効率的に開発しようとしています。私の質問がまったくばかげている場合はすみません。簡単なテンプレート クラスの例に問題があります。
template<typename T>
class SameCounter {
private:
map<T,int> counted;
public:
SameCounter(list<T> setup) {
for(list<T>::iterator it = setup.begin(); it != setup.end(); it++) {
counted[*it]++;
}
}
map<T,int>::const_iterator& begin() { // line 25
return counted.begin();
}
map<T,int>::const_iterator& end() {
return counted.end();
}
};
...
// using the class
Reader rdr;
rdr.Read();
SameCounter<char> sc(rdr.GetData());
コンパイル中にエラーが発生します:
Error 3 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int d:\learn_cpp\examples\gyakorlas_1.cpp 25
Error 2 error C2143: syntax error : missing ';' before '&' d:\learn_cpp\examples\gyakorlas_vizsga\gyakorlas_1.cpp 25
(both of them twice)
私はそれについての手がかりを持っていません.SameCounterを通常のクラスとして作成すれば、それはまったく問題ないので、おそらく私が仮定するテンプレートに何か問題があります. お手伝いありがとう。