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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
kravam
быдлокодер
1691 / 878 / 44
Регистрация: 04.06.2008
Сообщений: 5,410
#1

Необъявленые переменные в C++- неужели такое возможно? - C++

10.06.2011, 23:07. Просмотров 818. Ответов 10
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
template <class T>
class bithree {
 public:
     void pomechenie() {per= 8;};
};
 
int main() {
// bithree<int> s;
}
MSVC-ий компилятор на per= 8 не ругается; (пока не закомментишь template <class T>). Что такое?
(g++ как всегда дисциплинирован в этом смысле)

Добавлено через 57 секунд
Думал, чем чёрт не шутит, может MSVC при создании объекта ругнётся, так нет же.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.06.2011, 23:07     Необъявленые переменные в C++- неужели такое возможно?
Посмотрите здесь:

Простой Кейлоггер. Такое возможно? - C++
Вчера начала изучать C++. Я хочу написать кейлоггер. Но прочитала на одном форуме, что без dll библиотек это невозможно. Алгоритм...

Возможно ли сделать такое сокращение? - C++
Здравствуйте, скажите пожалуйста возможно ли такое сделать ? Есть четыре цифры, в первой цифре может быть 1 или 2, во второй тоже 1 или...

Приведение типов, возможно ли такое - C++
Всем доброго времени суток... Не знаю как правильно спросить то что я хочу, но попробую объяснить на примере) u_char *packet; //массив...

Динамический bitset, возможно ли такое? - C++
как известно size в bitset&lt;size&gt; должно быть статической, как реализовать класс с полем bitset&lt;size&gt; в конструктор\параметр которого...

Найти такое минимально x, чтобы после выполнения кода переменные были равны заданным значениям - C++
#include &lt;iostream&gt; using namespace std; int main() { int a,b; int gl; for (int x=60;x&lt;100;x++){

Неужели никто не знает про список? - C++
У меня уже есть сформированный и сортированный список, в котором я ставлю последний элемент в начало, но возникает проблема с тем, что этот...

Переменные - C++
Всем привет, я знаю есть много неизвестного для меня в перменных, есть типы int, float, char, string, bool, но я так же слышал про другие,...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ValeryLaptev
Эксперт С++
1035 / 814 / 48
Регистрация: 30.04.2011
Сообщений: 1,658
10.06.2011, 23:12     Необъявленые переменные в C++- неужели такое возможно? #2
Это пока не переменная.
Шаблон - это еще не класс. Это только "выкройка" класса. Вот при инстанцировании - огребете по полной...
volovzi
267 / 169 / 8
Регистрация: 14.03.2010
Сообщений: 501
10.06.2011, 23:30     Необъявленые переменные в C++- неужели такое возможно? #3
Шаблон — это текст, который до инстанцирования не является классом или функцией. Возможно, MSVC, в отличие от gcc, вообще не трогает шаблоны, пока те явно не использованы где-то в программе.
kravam
быдлокодер
1691 / 878 / 44
Регистрация: 04.06.2008
Сообщений: 5,410
10.06.2011, 23:30  [ТС]     Необъявленые переменные в C++- неужели такое возможно? #4
C++
1
2
3
4
5
6
7
8
9
template <class T>
class bithree {
 public:
     void pomechenie() {per= 8;};
};
 
int main() {
 bithree<int> s;
}
Создаю объект шаблонного класса, где определяется функция и переменная
непонятно какого типа. Не ругается.
volovzi
267 / 169 / 8
Регистрация: 14.03.2010
Сообщений: 501
10.06.2011, 23:31     Необъявленые переменные в C++- неужели такое возможно? #5
Ой, опоздал.

Добавлено через 52 секунды
kravam, а вызови функцию "pomechenie()" в мейне.
ValeryLaptev
Эксперт С++
1035 / 814 / 48
Регистрация: 30.04.2011
Сообщений: 1,658
10.06.2011, 23:37     Необъявленые переменные в C++- неужели такое возможно? #6
Цитата Сообщение от kravam Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
template <class T>
class bithree {
 public:
     void pomechenie() {per= 8;};
};
 
int main() {
 bithree<int> s;
}
Создаю объект шаблонного класса, где определяется функция и переменная
непонятно какого типа. Не ругается.
Вы не вызываете метод. Значит он - не инстанцирован. Нет его!
А вот здесь - есть:
C++
1
2
bithree<int> s; 
s.pomechenie();
Тут же получаем по сусалам!
C++
1
2
3
4
5
6
7
8
9
10
11
c:\documents and settings\vv\рабочий стол\викино кубло\12345\1\1.cpp(10) : error C2065: 'per' : undeclared identifier
1>        c:\documents and settings\vv\рабочий стол\викино кубло\12345\1\1.cpp(10) : while compiling class template member function 'void bithree<T>::pomechenie(void)'
1>        with
1>        [
1>            T=int
1>        ]
1>        c:\documents and settings\vv\рабочий стол\викино кубло\12345\1\1.cpp(16) : see reference to class template instantiation 'bithree<T>' being compiled
1>        with
1>        [
1>            T=int
1>        ]
kravam
быдлокодер
1691 / 878 / 44
Регистрация: 04.06.2008
Сообщений: 5,410
11.06.2011, 00:04  [ТС]     Необъявленые переменные в C++- неужели такое возможно? #7
Странно всё это.
C++
1
2
3
4
5
void f () {
 per= 89;
}
 
int main () {}
Тоже вроде ничё не вызывается, а MSVC всё равно ругается. Избирательный подход к функциям!
ValeryLaptev
Эксперт С++
1035 / 814 / 48
Регистрация: 30.04.2011
Сообщений: 1,658
11.06.2011, 00:07     Необъявленые переменные в C++- неужели такое возможно? #8
Нет. В последнем примере - не шаблон, а функция вполне конкретная.
Медитируйте над шаблонами.
OstapBender
583 / 521 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
11.06.2011, 00:08     Необъявленые переменные в C++- неужели такое возможно? #9
хреново знаю шаблоны, но по-моему они как макросы. то есть не проверяются (по крайней мере в полной степени) до подстановки в них данных
по мере надобности создается компилятором необходимая версия функции (класса) шаблона, и выполняются подстановки (как макросов) переменных
ValeryLaptev
Эксперт С++
1035 / 814 / 48
Регистрация: 30.04.2011
Сообщений: 1,658
11.06.2011, 00:14     Необъявленые переменные в C++- неужели такое возможно? #10
OstapBender, макросы-то макросы... Только не простые, а синтаксические...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.06.2011, 17:52     Необъявленые переменные в C++- неужели такое возможно?
Еще ссылки по теме:

Переменные - C++
Вот есть переменная: float x=100.0f Что значит в конце буква f ?

Переменные - C++
Есть глобальная переменная, внутри описания функции я ее меняю ( ну то есть пишу b=i;); После вызова этой функции, другая функция будет...

Переменные в c++ - C++
Помогите разобраться в теории. Так вот допустим мы создаем переменную в стеке int a; тогда в стеке где то по адресу скажем 004 выделяется...

Переменные - C++
system( &quot;/*Как нибудь можно здесь использовать переменные типов STRING или CHAR?*/&quot; );

Статические переменные - C++
В чем польза использовать статические переменные вместо обыкновенных публичных в определении класса. К примеру: class record { ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
kravam
быдлокодер
1691 / 878 / 44
Регистрация: 04.06.2008
Сообщений: 5,410
11.06.2011, 17:52  [ТС]     Необъявленые переменные в C++- неужели такое возможно? #11
Цитата Сообщение от ValeryLaptev Посмотреть сообщение
Нет. В последнем примере - не шаблон, а функция вполне конкретная.
Медитируйте над шаблонами.
А чё над ними медитировать?
Синтаксис какой Бог на душу положит. Тем и живём.
Yandex
Объявления
11.06.2011, 17:52     Необъявленые переменные в C++- неужели такое возможно?
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru