Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.04.2010, 21:08   #1
cati
Пользователь
 
Регистрация: 19.04.2010
Сообщений: 11
По умолчанию С++класс-вектор

По заданию необходимо реализовать перегрузку операции -> для одномерного массива.
Выдает ошибку( left of '->data' must point to class/struct/union) пожалуйста помогите исправить.
Код:
#include <iostream>
#include <vector>
using namespace std;

template <class T,int size=4>class Array
{
private:
	T *data;  
	int length;
public:
	Array();
	~Array();  
	void InArray(); 
	void OutArray(); 
	T *operator ->() {return data;}
};

template <class T>
Array<T>::Array()
{
	length=size;
	data=new T[size];
}

template <class T>
Array<T>::~Array()
{
	delete []data;
}
template <class T>
void Array<T>::InArray()
{
cout << "Enter Array:" << endl;
cout << "------------" << endl;
for (int i = 0; i < 4; i++)
{
cout << i << "-element: ";
cin >> data[i];
}
cout << endl;
}
template <class T>
void Array<T>::OutArray()
{
cout << "Array: ";
for (int i = 0; i < 4; i++)
{
cout << data[i];
}
cout << endl;
}
int main()
{
Array <int>oArray_1;
oArray_1.InArray();
(oArray_1.operator ->())-> data;
oArray_1.OutArray();
return 0;
}
cati вне форума Ответить с цитированием
Старый 21.04.2010, 21:13   #2
fikret123
Пользователь
 
Регистрация: 16.03.2008
Сообщений: 26
По умолчанию

какой то корявый вызов (oArray_1.operator ->())-> data;
попробуй cout<<(oArray_1->());
fikret123 вне форума Ответить с цитированием
Старый 21.04.2010, 21:18   #3
cati
Пользователь
 
Регистрация: 19.04.2010
Сообщений: 11
По умолчанию

пишет, что есть ошибки:
error C2839: invalid return type 'int *' for overloaded 'operator ->'
error C2059: syntax error : '('
cati вне форума Ответить с цитированием
Старый 21.04.2010, 21:41   #4
fikret123
Пользователь
 
Регистрация: 16.03.2008
Сообщений: 26
По умолчанию

сорри

cout<<*(oArray_1.operator ->());
fikret123 вне форума Ответить с цитированием
Старый 21.04.2010, 21:58   #5
cati
Пользователь
 
Регистрация: 19.04.2010
Сообщений: 11
По умолчанию

при запуске программы выдает ошибку:
fatal error C1001: INTERNAL COMPILER ERROR
cati вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
определить класс описывающий вектор.С++ varlonec Помощь студентам 0 26.01.2010 17:47
c++,класс вектор вникнуть в задание ahab Помощь студентам 5 26.12.2009 13:52
вектор vbas Помощь студентам 28 26.12.2009 03:01
Вектор? Slavik Microsoft Office Excel 0 23.02.2009 10:30