実現したいこと
my_vector<int> vec(10, -1);
vec[i] = 0;
int v = vec[i];
のようなコードで、2行目と3行目の添え字演算子を別の関数として実装する事は出来るのでしょうか
イメージとしては下のような感じです
該当のソースコード
c++
1#include<bits/stdc++.h> 2 3template<class T>struct my_vector { 4 std::vector<T> V; 5 6 my_vector(int n = 0, int v = 0) : V(n, v) {} 7 8 //a 9 //値が代入される際に呼ばれる 10 int &operator[](int i) {/*処理*/} 11 12 //b 13 //上以外の場合に呼ばれる 14 const int operator[](int i) { /*処理*/} 15}; 16 17int main() { 18 my_vector<int> V(10, -1); 19 V[0] = 1; //aを呼ぶ 20 int v = V[0]; //bを呼ぶ 21 22 return 0; 23}
補足情報(FW/ツールのバージョンなど)
gcc, c++17
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/17 15:17
2020/04/18 07:29