I am writing a universal data type (mini version) The problem arose when calling getInside();
Conclusion: Integer val: -858993460 Why is that? And how to fix it?
class AnyType { private: int *integer; double *floating; bool *boolean; public: AnyType() { integer = nullptr; floating = nullptr; boolean = nullptr; } template<typename T> AnyType(T val) { if (typeid(floating) == typeid(T*)) { floating = &val; } } void ToInt() { int tmp=int(*floating); integer = &tmp; } void getInside() { cout << "Integer val:" << *integer << endl; } }; int main() { AnyType fff(1.5); fff.ToInt(); fff.getInside(); system("pause"); return 0; }