Форум программистов, компьютерный форум CyberForum.ru

Не работает extern для vector - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Наследование и виртуальные функции http://www.cyberforum.ru/cpp-beginners/thread640546.html
Скажите, часто ли вы при проектирование реальных программ используете наследование?
C++ Циклический вывод #include <iostream> #include <conio.h> #include <windows.h> int main() { int x=0, y=0; int step=10; char c; http://www.cyberforum.ru/cpp-beginners/thread640542.html
Экран C++
Как прописывается процедура очистки экрана?
C++ Не срабатывает условие в цикле while не могу понять почему
При решении задачки в которой необходимо сделать игру Однорукий Бандит, наткнулся при тестировании что одно из условий цикла while не срабатывает, в частности второе, ума не приложу почему, вроде бы всё правильно. #include<iostream> #include<time.h> #include<windows.h> using namespace std; void generator(char* simv)//функция которая отвечает за генерацию случайных мастей {...
C++ Указатели на объекты http://www.cyberforum.ru/cpp-beginners/thread640516.html
В книге Шилдта, есть фрагмент кода: TwoDShape *shapes; shapes = &Triangle("pryamougolni",8.0,12.0); shapes = &Rectangle(10); shapes = &Rectangle(10,4); shapes = &Triangle(7.0); shapes = &TwoDShape(10,20,"general");
C++ Передача локальных переменных одной функции другой Добрый день, подскажите, как осуществить передачу локальных переменных получаемых в одной функции другой?Облазил гугл, ничего внятного кроме глобализации не нашел... подробнее

Показать сообщение отдельно
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
21.08.2012, 21:25     Не работает extern для vector
Цитата Сообщение от parikmaher534 Посмотреть сообщение
То есть в extern объект должен быть определен изначально?
Не должен. Можете отдельно определить. Объявление с определением:
C++
1
vector<Card> CardList;
Только объявление (без определения):
C++
1
extern vector<Card> CardList;
У вас в коде было только объявление, поэтому компилятор и ругался.
Определение, это когда память под переменную выделяется. Должно быть одно. Объявлений сколько угодно. Для этого и применяется слово extern. Для того, чтобы переменная была видна во всех файлах и не было бы множества определений, её определяют в одном файле, а в других объявляют без определения, с помощью extern. Не знаю, зачем ForEveR привёл такой пример, но если, вместе с extern, используется и присваивание, то компилятор extern просто игнорирует.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru