2014-11-28 2 views
-4

Хорошо, моя проблема в моей динамической функции массива У меня есть массив, который дает мне ошибку ниже.Проблемы с динамическим массивом

#include <iostream> 
#include <string> 
#include <cmath> 
#include <iomanip> 
#include <fstream> 
using namespace std; 

class Revenue 
{ 
}; 
static int Track_Num_Divisions = 1; 
static int Track_Quart_Revenue = 1; 
void Program_loop() 
{ 

{ 

    string D; 
    string DN; 
    int N; 
    double TS; 
    double TC; 
    double P; 

     int arry; 
    cout << "how many Revenue tiers do you want?: "; cin >> arry; 
    Revenue* rev = new Revenue[arry];//dynamic array 
    for (int i = 0, Track_Num_Divisions = 1;Track_Num_Divisions, i < arry; i++,Track_Num_Divisions++) 
    { 
     Revenue& rev = rev[i];// THIS IS THE ERROR <<<< 
     cout << " " << endl; 
     cout << "Revenue #"<<Track_Num_Divisions << endl; 
     cout << "===========" << endl; 
     cout << "<< Ok what is your division name?: " << endl; cin >> D; 
     string set_Division_name(D); 
     cout << "<< What is your division number?: " << endl; cin >> DN; 
     string set_Division_number(DN); 
     while (DN.size() != 4) 
     { 
      cout << "<< Sorry! Your Division Number cannot exceed or be short of 4. " << endl; cin >> DN; 


    } 
    delete[] rev; 
} 

дает эту ошибку в функции Dynamic_array I think the problem lies in this code>> Revenue& rev =rev[i]:

Ошибка 1 Ошибка C2676: бинарная «[»: «Доход» не определяет этот оператор или преобразование к типу, приемлемого для предопределенного оператора

ошибки 2 IntelliSense: нет оператора "[]" соответствует этим операндам типов операндов: Доход [Int]

Что мне делать?

Я новичок на этом веб-сайте, все еще изучая канаты надлежащего формата.

+0

Это не MCVE. Слишком много бесполезного кода. И некоторый фон был бы уместным. – Deduplicator

+1

whoa держит телефон, он не опубликовал ни одну информацию о фоновом изображении, которую я напечатал вообще. WOW с чьей-то точки зрения выглядит плохо. Лемм повторить это. –

+0

_ "Lemme redo this" _ Низкий шанс, сайт очень строгий! Улучшите свой первоначальный вопрос, чтобы он соответствовал политикам. Вы не можете действительно удалить его (так как сейчас есть ответы на них), и это повлияет на соображения вашей учетной записи, должно быть «вопрос запрещен» _. –

ответ

2

Эта линия проблема:

Revenue& rev = *rev[i]; 

Вы разыменования значение, возвращенное rev[i], но rev[i] не является указателем или класс с перегруженным operator*. Это Revenue&.

Там нет необходимости derferencing здесь что-нибудь, просто написать:

Revenue& rev = rev[i]; 
+0

ok теперь он говорит мне, что нет оператора «[]» соответствует этим операндам типов операндов Revenue [int] –

+0

@LegacyWink Какова линия, из которой он идет? – 0x499602D2

+0

99 является линией ошибка в –

Смежные вопросы