#include <iostream>
#include <string>
using namespace std;
template <class T1>
class TypeSize {
public:
TypeSize(T1 value) {
this->value = value;
}
void DataTypeSize() {
cout << "value size is " << sizeof(T1) << endl;
}
private:
T1 value;
};
template <class T1>
class TypeInfo : public TypeSize<T1> {
public:
TypeInfo(T1 value) : TypeSize(value) { //<<<<<<< Ошибка!
}
};
int main() {
int a = 2;
TypeInfo<int> c(a);
c.DataTypeSize();
return 0;
}
Ошибка C2512 TypeSize: нет подходящего конструктора по умолчанию Project1 e:\sources\l_151_classtemplateinheritance.cpp 39
Ошибка C2614 TypeInfo: недопустимая инициализация члена: "TypeSize" не является базовым классом или членом Project1 e:\sources\l_151_classtemplateinheritance.cpp 39
Попробуйте написать
TypeInfo(T1 value) : TypeSize<T1>(value) {
(см. https://ideone.com/Mo8cir)
Не могу правильно воспользоваться перегруженной функцией operation<<
До запуска дополнительного потока создается семафор, который используется в создаваемом потоке: