Вопросы по теме 'using-declaration'

С++ с использованием объявления с именем типа в конструкторах наследования
Читая этот вопрос , я обнаружил странный момент: template <typename T> class Subclass : public Baseclass<T> { public: using typename Baseclass<T>::Baseclass; // ^^^^^^^^ }; Поскольку typename ,...
1321 просмотров

Использование повторного объявления в области блока
Вот код, который вызывает ошибку времени компиляции: #include <iostream> int a; void f() { using ::a; using ::a; //'a' is already declared in this scope. } int main(){ } ДЕМО Стандарт говорит ( N4296::7.3.3/10...
34 просмотров
schedule 11.08.2022

Как работает поиск неквалифицированного имени при использовании объявлений использования?
Это неправильно или правильно сформировано в соответствии со стандартом С++? namespace M { struct i {}; } namespace N { static int i = 1; } using M::i; using N::i; int main() { sizeof (i); } Clang отклоняет его, а GCC принимает. Согласно...
633 просмотров

Переопределить общедоступную виртуальную функцию частной базовой функцией?
Рассмотрим два класса A и B со следующим интерфейсом: class A { public: virtual void start() {} //default implementation does nothing }; class B { public: void start() {/*do some stuff*/} }; а затем третий класс, который...
516 просмотров

Использование объявления в качестве переопределения
У нас есть следующий простой (и немного измененный, чтобы добавить main и вывод) пример в стандарте: struct A { virtual void f() { cout << "A\n"; } }; struct B : virtual A { virtual void f() { cout...
565 просмотров

Применение ключевого слова с использованием чистой виртуальной функции С++
Класс B переопределяет чистую виртуальную функцию "print()" класса A. Класс C наследует класс B, а также имеет оператор "using A::print". Теперь, почему класс C не является абстрактным классом? class A { public : virtual void print()...
982 просмотров