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

undefined reference to `variable` - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Задача : "Скобочки". http://www.cyberforum.ru/cpp-beginners/thread392433.html
Некоторые скобочные структуры правильные, другие — неправильные. Ваша задача — определить правильная ли скобочная структура. Вход: Слово в алфавите из двух круглых скобочек ( и ). Длина слова меньше 4001. Выход: Либо 'NO', либо 'YES' без кавычек. ВХОД #1: () ВЫХОД #1:
C++ исправьте ошибки пожалуйста #include "stdafx.h" #include <math.h> float rec(float n) { if (n==1)return 0; else return log(n/(sqrt(n))+rec(n-1)); } int _tmain(int argc, _TCHAR* argv) { printf ("vvedite seloe n \n"); http://www.cyberforum.ru/cpp-beginners/thread392428.html
C++ Полноэкранное консольное приложение
Здравствуйте! Вопрос состоим в следующем: как запустить консольное приложение в полноэкранном режиме? Есть ли какая-то функция для этих целей? Заранее спасибо.
Определить двух студентов с наивысшим средним баллом. C++
С текстового файла считать последовательность записей, содержащих данные о результатах сессии студентов группы в следующем формате: <Фамилия>, <Имя>,, <Список экзаменационных оценок>. Распечатать введенные данные в виде таблицы, Видсортуваваты данные по фамилиям студентов в алфавитном порядке. определить двух студентов с высоким средним баллом. Проблема в том что я еще не очень понимаю и...
C++ одномерный массив http://www.cyberforum.ru/cpp-beginners/thread392397.html
Удалить из массива М(26) первый положительный элемент. Пожалуйста!!! Вводить и выводить через printf и scanf. Использовать только библиотеки stdio. h, time.h, stdlib
C++ не могу понять с чего начать Написать программу содержащую 2 функции. Первая функция которая выводит на экран строку, состоящую из одинаковых символов располагается после функции main . вторая функция которая запрашивает длину строки и символ , располагается до функции main помогите написать прогу... подробнее

Показать сообщение отдельно
Сыроежка
Заблокирован
27.11.2011, 06:57     undefined reference to `variable`
Цитата Сообщение от OrmaJever Посмотреть сообщение
Но зачем я тогда обьявляю их в main.h?

Добавлено через 25 минут
Day, спасибо, вроде бы работает.

Добавлено через 28 минут
Так, а что делать с константами? Их нельзя обьявить extern. Схема такая же.
main.h
C++
1
const  char *variable = "string"; // обьявление
main.cpp
C++
1
2
#include "main.h"
some_function(variable) // использование
WndProc.cpp
C++
1
2
#include "main.h"
other_function(variable); // использование
Когда же вы поймете, что надо за советом обращаться не к дилетантам, а к профессионалам?! Что же вы постоянно наступаете на одни и те же грабли?!

Разъясняю подробно.

Константные объекты имеют внутреннее связывание.. Что это означает? Что вы в заголовочном файле можете объявить константный объект и включить этот заголовочный файл во все модули. Это будут разные объекты!, то есть они не ивступят в конфликт с друг другом, так как редактор связей их не будет видеть! Это только если вы объявите константный объект со спецификатором extern, только тогдат редактор связей увидет константу.

Кроме того, вы объявляете указатель на строковый литерал. Корректно его будет объявить как

C++
1
const char *str = "string";
Хотя С++ и разрешает объявлять не константные указатели, тем не мене он предупреждает, что такая запись, то есть при отсутствии константности объекта, на который указывает указатель, не поощряется, так как в новых версиях стандарта это может быть запрещено.

Я не вижу у вас проблем с передачей этого указателя в функции. У вас есть прототип функции, который должен, как я понимаю, принимать параметр, который является константным указателем ( то есть указателем на константный объект). Какие проблемы?!

Добавлено через 4 минуты
Цитата Сообщение от Day Посмотреть сообщение
Уважаемый! Когда же вы научитесь вести себя прилично и не наскакивать на мало знакомых вам людей.
Я же не спрашиваю, в каких проектах участвовали вы, не подвергаю сомнению вашу квалификацию (во всяком случае на страницах этого форума), ни разу не высказал сомений в ваших умственных способностях.
Мое предложение, прекратить этот дурацкий спор, пока нам не надавали по нашим виртуальным задницам, хотя судя по всему, вам на это наплевать.
На этот пост можете не отвечать.
ЗЫ. Хотя если вам для душевного здоровья необходимо, чтобы последнее слово осталось за вами - пожалуйста!
Вы можете конечно демонстрировать свое возмущение, бить себя в грудь, что вы, якобы, участвовали в крупных проетах, но я вам скажу прямо: в крупных проектах такую самодеятельность с макроопределениями зарубают на корню! Проблема в том, что вы даже не поняли, когда я говорил о коллизии заголовочных файлов! Это тот случай, когда потом ощибку в программе будет очень трудно находить! Профессионалы таких вещей не допускают. Это только любители могут 20 лет использовать такие объявления, так как в рамках их небольших проектов это вполне допустимо.

Извините, но я , как профессионал, обязан дать оценку тому, что вы предлагаете, не зависимо от того, нравится вам это или нет.
 
Текущее время: 12:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru