Вопросы по теме 'name-hiding'
Скрытие имени в списке инициализации конструктора
Я хочу изменить конструктор, чтобы использовать список инициализации, как в следующем примере:
class Foo
{
public:
Foo(std::wstring bar);
private:
std::wstring bar;
};
// VERSION 1:
Foo::Foo(std::wstring bar) {this->bar = bar}
//...
368 просмотров
schedule
24.06.2022
Предупреждение: перегруженная виртуальная функция 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 просмотров
schedule
07.07.2023
Как работает поиск неквалифицированного имени при использовании объявлений использования?
Это неправильно или правильно сформировано в соответствии со стандартом С++?
namespace M { struct i {}; }
namespace N { static int i = 1; }
using M::i;
using N::i;
int main() { sizeof (i); }
Clang отклоняет его, а GCC принимает.
Согласно...
633 просмотров
schedule
16.08.2022
Почему динамическая привязка может переопределить скрытие имен в C++?
Я узнал, что внутренние имена скрывают внешние имена (поэтому перегрузка не выходит за рамки), потому что поиск имени предшествует сопоставлению типов. Поэтому я пишу следующий код C++, чтобы поиграть с этим правилом:
class Base {
public:...
40 просмотров
schedule
07.02.2023
Почему общедоступные типы членов базового класса шаблона скрыты по умолчанию?
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