Вопросы по теме 'name-hiding'

Скрытие имени в списке инициализации конструктора
Я хочу изменить конструктор, чтобы использовать список инициализации, как в следующем примере: class Foo { public: Foo(std::wstring bar); private: std::wstring bar; }; // VERSION 1: Foo::Foo(std::wstring bar) {this->bar = bar} //...
368 просмотров

Предупреждение: перегруженная виртуальная функция Base :: process только частично переопределяется в производном классе
Я получаю предупреждение ниже. часть моего кода: class Base { public: virtual void process(int x) {;}; virtual void process(int a,float b) {;}; protected: int pd; float pb; }; class derived: public Base{ public: void...
5816 просмотров

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

Почему динамическая привязка может переопределить скрытие имен в C++?
Я узнал, что внутренние имена скрывают внешние имена (поэтому перегрузка не выходит за рамки), потому что поиск имени предшествует сопоставлению типов. Поэтому я пишу следующий код C++, чтобы поиграть с этим правилом: class Base { public:...
40 просмотров

Почему общедоступные типы членов базового класса шаблона скрыты по умолчанию?
template<typename T> struct A { using U = T; }; template<typename T> struct B : A<T> { B(typename A<T>::U) {} // okay B(U) {} // error: unknown type name 'U' }; int main() { return typename B<int>::U{};...
39 просмотров
schedule 31.05.2023