![]() |
29 декабря 2008, Денис | ||
Вопрос таков. Мне нужно перегрузить в C++ вот такой оператор [][]. | ||
Есть класс: |
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | class My{ int **elem; //массив int c;//количество столбцов int r; //количество строк public: My(int a, int b) { c=a; r=b; elem = new int *[a]; for(int i=0;i<a;i++) {elem[i]=new int [b];} } My() {} ~My() {} }; |
Денис, в C++ нет оператора [][], есть один оператор [], который применяется к результату другого оператора []. В вашем примере это могло бы быть вот так. Однако, не стоит забывать, что с точки зрения промышленного программирования этот класс — это кромешный пиздец. Если бы я увидел такое в коде своего соискателя, то на этом наша беседа была бы отложена года на два-три. |
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | class My{ int **elem; //массив int c;//количество столбцов int r; //количество строк public: My(int a, int b) { c=a; r=b; elem = new int *[a]; for(int i=0;i<a;i++) {elem[i]=new int [b];} } My() {} ~My() {} int* operator [] (std::size_t col) // oops! { return elem[col]; } }; |
|
Статистика |
|