Char4
внутри выглядит довольно странно и совсем не универсален. Использование std::array
на входе или для хранения конкретно тут пока еще не оправдано.... сервис вопросов и ответов «Хабр Q&A» не является форумом ...
допустим есть куб и прямоугольник , куб двигается по какой либо из осей, а прямоугольник вращается
В шаблонизированных классах нужно явно указывать наследованные члены класса
a = 1;
- это попытка обращения к полю через неквалифицированный доступ.this
для квалификации, хоть это и работает, использовать в таком случае вообще неправильно.using Base<T>::var;
- это операция создания псевдонима поля в локальной области видимости шаблона типа. И это не всегда удобно. И это приведет к проблемам если такое имя уже есть в локальной области шаблона типа или если ты это поле переименуешь в базовом шаблоне. А еще это снова будет сбивать тебя с толку, т.к. в месте работы с полем не будет понимания, откуда это поле взялось.template <class T>
class Derived : private Base<T>
{
public:
using Parent = Base<T>;
Derived() {
Parent::a = 1;
Parent::b = 2;
Parent::c = 3;
}
};
this
вообще?this
оправдано в исчезающе малом количестве случаев.conio.h
не определяет нажатие клавиш на клавиатуре. Эта библиотека дает доступ к чтению потока ввода консоли, который может производиться не с клавиатуры, а из файла или вывода другой программы.conio.h
даст доступ к тому, что не работает.