2014-01-19 4 views
1

Можно ли объявлять переменные с тем же именем в разные структуры? Например:Те же имена переменных в разные структуры

struct first 
{ 
    int a; 
    int b; 
    int the_same; 
}; 

struct second 
{ 
    int x; 
    int y; 
    int the_same 
}; 
+2

Вместо того, чтобы спрашивать здесь, можно ли или нет, то почему бы вам не _compile_ код и увидеть его для себя? –

+2

У меня уже было, и это работает, но мне нужны некоторые мнения, и я хочу знать, рекомендуется ли этому методу. –

ответ

3

Да, они хорошо работают, как они относятся к разным code scopes. Вы можете получить к ним доступ по first.the_same и second.the_same.

[...] Область применения - важный компонент разрешения имен, который, в свою очередь, является фундаментальным для семантики языка. Разрешение имен (включая область) варьируется между языками программирования и на языке программирования, зависит от типа объекта. Вместе с пространствами имен правила определения области обзора имеют решающее значение в модульном программировании, поэтому изменение одной части программы не нарушает несвязанной части. [...]

0

Это можно сделать. Возможно, вы подумали, что это похоже на Enums, если у вас есть одинаковые значения в двух разных перечислениях, вы получите ошибку времени компиляции, но это будет возможно, если пространство имен enums отличается. например:

namespace a { 
    enum a { a, b, c } 

} 

namespace b { 
    enum a {a, b, c} 
} 
+0

Что такое пространство имен? Я знаю только C и никогда не слышал об этом. –

+0

О, простите об этом. Пространства имен - это функция, добавленная в C++. Это намерение состоит в создании новых областей в коде. –

+0

@NOVIN В C правильное имя для пространств имен - это * перегрузка классов * –

1

Да, вы можете использовать переменную с тем же именем в другой структуре.

struct first 
{ 
    int a; 
    int b; 
    int the_same; 
}; 

Слушайте a, b и the_same являются элементами структуры в первую очередь. и в структуре

struct second 
{ 
    int x; 
    int y; 
    int the_same 
}; 

x, y и the_same являются элементами второй структуры.

компилятор будет ссылаться в эту переменную там структура имени не по отдельности ..

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

  • Нет связанных вопросов^_^