Tôi có một biến int liên tục trong lớp cơ sở của mình, và tôi muốn khởi tạo đáp ứng một trong lớp dẫn xuất của tôi, với giá trị khác nhau (được lấy làm tham số), điều này có khả thi không?C++ Khởi tạo lớp cơ sở 'const int trong lớp dẫn xuất?
Dưới đây là những gì tôi đã làm:
// Base.h (methods implemented in Base.cpp in the actual code)
class Base {
public:
Base(const int index) : m_index(index) {}
int getIndex() const { return m_index; }
private:
const int m_index;
};
// Derived.h
class Derived : public Base {
public:
Derived(const int index, const std::string name) : m_name(name) {}
void setName(const std::string name) { m_name = name; }
std::string getName() const { return m_name; }
private:
std::string m_name;
};
Nhưng rõ ràng là nó hỏi tôi cho Base::Base()
đó không tồn tại, và nếu tôi xác định nó, tôi sẽ phải từ bỏ giá trị mặc định cho m_index
, mà tôi không muốn làm. Tôi có phải xác định riêng biệt từng lớp học có nguồn gốc từ const int m_index
không?
câu hỏi tương tự, nhưng tôi không chắc chắn nếu tĩnh ảnh hưởng này dưới mọi hình thức: C++ : Initializing base class constant static variable with different value in derived class?
GÌ?!? Tôi đã làm C++ cho 3 đến 4 năm hoặc một cái gì đó, và tôi đã không bao giờ chạy vào điều này? Tôi đã luôn luôn nghĩ rằng tôi phải sử dụng constructor mặc định ... Cảm ơn dude, gonna chấp nhận trong một phút. –