Tôi đôi khi (ngẫu nhiên) nhận được khởi tạo không chính xác các giá trị, khiến tôi nghĩ rằng tôi đang sử dụng bộ nhớ chưa được khởi tạo ở đâu đó. Cấu trúc dữ liệu chính của tôi là:C++ Bộ nhớ chưa được khởi tạo?
template <class state>
class learnedStateData {
public:
learnedStateData() :gCost(DBL_MAX), hCost(0), isDead(false) {}
state theState;
double gCost;
double hCost;
bool isDead;
};
Điều này đang được lưu trữ trong một hash_map STL. Bất kỳ suy nghĩ về cách tôi có thể nhận được dữ liệu uninitialized (bên cạnh theState) từ cấu trúc dữ liệu này?
Hãy để tôi làm rõ: Tôi không muốn giá trị của mình không được khởi tạo, nhưng đôi khi chúng dường như ngẫu nhiên.
Ngoài theState bạn đã khởi tạo đúng mọi thành viên trong lớp của mình. Do đó không khởi tạo theState có thể là nguồn gốc của vấn đề. –
Nếu 'state' có một hàm tạo mặc định, nó sẽ tự động được gọi, do đó không cần phải gọi nó một cách rõ ràng. Tuy nhiên, nếu không có constructor mặc định, đó là một câu chuyện khác. –
* cách tôi có thể nhận dữ liệu chưa được khởi tạo (bên cạnh theState) * ... Bằng cách này, ** dữ liệu ** bạn muốn nói là chưa được khởi tạo? Bên cạnh 'theState', các dữ liệu khác được hiển thị trong' lớp' dường như được khởi tạo đúng cách ... – liaK