Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Перегрузка оператора [] - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ программа для расчета формул http://www.cyberforum.ru/cpp-beginners/thread444537.html
z=cosx*sinx z2=sin3x+sin2x+sinx
C++ написать программу для расчета двух формул. z1=(((1+a+a^2)/(2a+a^2)+2-(1-a+a^2)/(2a-a^2))^(-1))*(5-2(a^2)) z2= (4-a^2)/2 http://www.cyberforum.ru/cpp-beginners/thread444500.html
C++ работа с функциями.что-то не так.
выдает ошибку: неоднозначный вызов перегруженной функции. в чем дело? #include "stdafx.h" #include <iostream> #include <conio.h> #include <math.h> using namespace std;
C++ Заполнение массива случайными значениями в С
Необходимо заполнить масив случайными значениями в диапазоне 1-9, причем они каждый раз должны быть другими, только random(9) заполняет каждый раз одинаковыми, randomize не хочет работать( for...
C++ Как в консоли проиграть музыку http://www.cyberforum.ru/cpp-beginners/thread444490.html
Вот и проблема мой код запускает проигрыватель, возник вопрос как сделать проигрывание в консоли? И как задавать адрес файла самому? #include <windows.h> #include <iostream> int main () { ...
C++ Какая у меня тут ошибка? Даны целочисленный массивы C, D. Для каждого массива определить максимальный и минимальный элементы среди элементов, расположенных в четных столбцах. #include<iostream.h> #include<iomanip.h>... подробнее

Показать сообщение отдельно
Chelioss
180 / 180 / 4
Регистрация: 08.01.2011
Сообщений: 1,133

Перегрузка оператора [] - C++

11.02.2012, 18:42. Просмотров 672. Ответов 3
Метки (Все метки)

Сделал простой аналог auto_ptr для дин. массива.
Файл
Array_ptr.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#ifndef ARRAY_PTR_GUARD
#define ARRAY_PTR_GUARD
 
template< class Ty_ >
class Array_ptr {
public:
    explicit Array_ptr( Ty_* ptr )
        : m_ptr( ptr )
    { }
    ~Array_ptr() { delete [] m_ptr; }
 
    Ty_& operator [] ( const unsigned int i ) { return m_ptr[i]; }
    const Ty_& operator [] ( const unsigned int i ) const { return m_ptr[i]; }
    operator Ty_* () { return m_ptr; }
private:
    Ty_* m_ptr;
};
 
 
#endif //ARRAY_PTR_GUARD


C++
1
2
Array_ptr< char > infix( new char[ strlen(str) + 1 ] ); 
infix[ i ] = ' ';
Во второй строке компилятор дает ошибку:
ошибка
error C2666: Array_ptr<Ty_>::operator []: для 3 перегрузок есть подобные преобразования
1> with
1> [
1> Ty_=char
1> ]
1> array_ptr.h(13): может быть 'const char &Array_ptr<Ty_>::operator [](const unsigned int) const'
1> with
1> [
1> Ty_=char
1> ]
1> array_ptr.h(12): или 'char &Array_ptr<Ty_>::operator [](const unsigned int)'
1> with
1> [
1> Ty_=char
1> ]
1> или 'встроенный оператор C++[(char *, int)'
1> при попытке сопоставить список аргументов '(Array_ptr<Ty_>, int)'
1> with
1> [
1> Ty_=char
1> ]
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru