Форум программистов, компьютерный форум, киберфорум
Наши страницы

Почему компилируется не объявленная переменная в шаблоне? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Стандарт. Раздел 2. Перевести абзац на русский язык http://www.cyberforum.ru/cpp-beginners/thread1064912.html
Есть проблема с переводом этого абзаца стандарта С++: Each instance of a backslash character (\) immediately followed by a new-line character is deleted, splicing physical source lines to form...
C++ Случайных чисел в диапазоне! Я из Болгарий,случайно нашел ето классньй сайт.Я только любитель невероятного язьйка С++.Пишу с ошибки по руском и для ето извиняюсь.Вот у меня вопрос(задача) для всех ответ спосибо заранее. ... http://www.cyberforum.ru/cpp-beginners/thread1064908.html
Реш ить задачу с помо щью алгоритма перебора с возвратом C++
Перебрать все пути в графе между двумя заданными вершинами, не содержащие одинаковых вершин. ПОМОГИТЕ ПЖЛСТ)
C++ Обучение по книге Страуструпа "принципы и практика C++". Не выводится "Hello, World"
Ребят, помогите пожалуйста, пропал на первом же примере из книги, автор даёт код для вывода Hello world!#include "std_lib_facilities.h" int main() { cout << "hello, world!\n"; //вывод "Hello...
C++ В каком направлении следует развиваться программисту C++ http://www.cyberforum.ru/cpp-beginners/thread1064875.html
Сразу просьба не ругаться т.к. такие темы многих раздрожают)) Прочитал пару книг по С и С++, на работе пишу прошивки под микроконтроллеры, но хочется чего-то более серьёзного. Сейчас надо...
C++ Найти сумму тех из элементов a2j(j=1,...,m), для которых a1j имеет значение наибольшего среди значений Даны натуральное число n, целочисленная матрица i=1,2; j=1,...,m. Найти сумму тех из элементов a2j(j=1,...,m), для которых a1j имеет значение наибольшего среди значений a11, a12,...,a1m. подробнее

Показать сообщение отдельно
Ilot
Модератор
Эксперт С++
1823 / 1181 / 232
Регистрация: 16.05.2013
Сообщений: 3,118
Записей в блоге: 5
Завершенные тесты: 1
31.12.2014, 13:18
Цитата Сообщение от DiffEreD Посмотреть сообщение
Я не понял прикола - почему gcc выводит oh lol
Так глобальная переменная, а mvalue не определена в классе CMyAwesomeClass. Этот код ставит все точки над "ы":
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>
using namespace std;
string mvalue="ok";
template<class HAHAHA>
class Trololo {
public:
    Trololo():
        mvalue("oh lol")
    {}
    string mvalue;
};
template<class DISREGARD_THAT>
class CMyAwesomeClass: public Trololo<DISREGARD_THAT> {
public:
    string mvalue;
    void SetValue(string value)  {
        mvalue = value;
    }
};
int main() {
    CMyAwesomeClass<int> c;
    c.SetValue("ok");
    cout<<c.mvalue<<endl;
    return 0;
 
}
А стандарт по этому поводу говорит следущее:
1
Миниатюры
Почему компилируется не объявленная переменная в шаблоне?  
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru