私はjavaを学び、C++を学んでいます。次のサンプルコードはコンパイルされず、手がかりを見つけることができませんでした。エラー:Classの前に予想される型指定子
#include <iostream>
#include <cstdlib>
#include <string>
#include <stdexcept>
using namespace std;
template <class T>
class MyObj {
public:
T value;
MyObj(T a){
this.value = a;
}
};
template <class T>
inline MyObj<T> const& sum(MyObj<T> const& a, MyObj<T> const& b)
{
// append copy of passed element
T result = a.value+b.value;
MyObj<T> obj = new MyObj(result);
return obj;
}
int main()
{
try {
MyObj<int> s1 = new MyObj(1);
MyObj<int> s2 = new MyObj(3);
MyObj<int> s3 = sum(s1,s2);
cout << s3.value <<endl;
}
catch (exception const& ex) {
cerr << "Exception: " << ex.what() <<endl;
return -1;
}
}
それは返します -
main.cpp:31:29: error: expected type-specifier before ‘MyObj’ MyObj s1 = new MyObj(1);
と
main.cpp:32:29: error: expected type-specifier before ‘MyObj’ MyObj s2 = new MyObj(3);
任意の助けいただければ幸いです。
コンストラクタで 'this-> value = a;'または 'value = a;'だけです。 – rgettman
どの本をお使いですか?または、あなたはただ推測していますか? –
@BarryTheHatchetは、私が以前に言及したように、私はC++を学ぼうとするJava開発者です。私はネットtuttsに従っています。 –