#include #include #include //do sprytnych wskaznikow #include //do watkow #include #include #include using namespace std; class Test { int numInt; double numDouble; public: Test(const Test &t) = delete; //blokuje mozliwosc kopiowania Test() = default; //tworzy domyslny konstruktor //void *operator new(std::size_t) = delete; //blokuje mozliwosc uzycia operatora new inline int getNumInt() { return numInt; } inline double getNumDouble() { return numDouble; } void setNumInt(int i); void setNumInt(double) = delete; //blokujemy mozliwosc uzycia tej funkcji ze zmienna typu double void setNumDouble (double d); template void setNumDouble(T) = delete; //blokujemy mozliwosc uzycia tej funkcji z jakakolwiek inna zmienna niz double }; /*Test::Test(const Test &t) { numInt = t.numInt; numDouble = t.numDouble; text = t.text; }*/ void Test::setNumInt(int i) { numInt = i; } void Test::setNumDouble(double d) { numDouble = d; } // ==== watki ==== void myThreadFunc() { cout<<"My first thread"< tPtr(new Test()); cout<<"smart pointer numInt:"<getNumInt()<