ld: дубликат символа _x в / users / .... ОШИБКА - PullRequest
1 голос
/ 18 августа 2011

У меня есть 2 разных класса, но одно и то же объявление примитивного типа, как вы видите ниже

int x = 0;
- (void)viewDidLoad{
[super viewDidLoad];
}

, если я изменю одно из них с именем "x" на "y", ошибки нет?ЗАЧЕМ?отдельные классы одна и та же переменная в чем проблема ???

Ответы [ 2 ]

2 голосов
/ 18 августа 2011

Это потому, что переменная x является общей для классов. Я думаю (но никогда не пытался), если вы объявите extern int x в другом файле, вы можете поделиться переменной x.

Попробуйте static int x = 0. В общем случае всегда объявляйте внутреннюю переменную класса как статическую, если вы не хотите использовать ее совместно с другим файлом.

0 голосов
/ 07 июля 2016

Я отвечаю на вопрос. Как говорит, потому что переменная x является общей для классов. Измените переменную x на другое имя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...