2015-01-27 2 views
-2

У меня есть два массива типа данных с тем же именем, один из них является строкой, а другой - двойным, как я нацелен на двойной DT для cin.Как мне задать массив, который уже существует (например, для двух разных типов массивов)?

string student[2] = {}; 
double student[2] = {0}; 
for(i = 0; i < CONS; i++) 
{ 
    cout << "Studient" << i + 1 << " Exam"<< i + 1 << "Score : "; 
    cin >> student[i]; 
} 
+6

[Это не будет работать] (https://ideone.com/Vl9BxY). Наличие двух переменных с одинаковым именем в одной области невозможно. –

+2

Есть ли причина, по которой вы не можете сделать это с немного разными именами? – ravi

+0

нет, вы, например, не должны компилировать (переопределить с другим базовым типом) - но если вы поместите двойную версию во вложенный блок, вы получите «скрытие», где определение самого внутреннего скрывает определение внешний охват - нет способа добраться до него, тогда – BeyelerStudios

ответ

5

У вас нет. Либо назвать их что-то другое или использовать struct для хранения связанных данных:

string student_name[2] = {}; 
double student_score[2] = {0}; 

// or 

struct student 
{ 
    student() : name(""), score(0) {} 
    string name; 
    double score; 
}; 

student students[2]; 
Смежные вопросы