Gần đây tôi đã câm như một nhà phát triển, vì vậy tôi đã lao xuống, có một cuốn sách C++ và học cách làm việc đúng cách. Trong đầu tôi, tôi biết tôi muốn làm gì. Tôi có hiệu quả muốn một Interface
rằng khi được thừa hưởng, phải được ghi đè (nếu điều này là có thể?). Cho đến nay, tôi có như sau:C++ constructor class/destructors cơ sở trừu tượng - tính chính xác chung
class ICommand{
public:
// Virtual constructor. Needs to take a name as parameter
//virtual ICommand(char*) =0;
// Virtual destructor, prevents memory leaks by forcing clean up on derived classes?
//virtual ~ICommand() =0;
virtual void CallMe() =0;
virtual void CallMe2() =0;
};
class MyCommand : public ICommand
{
public:
// Is this correct?
MyCommand(char* Name) { /* do stuff */ }
virtual void CallMe() {}
virtual void CallMe2() {}
};
Tôi đã cố để lại làm thế nào tôi nghĩ rằng các nhà xây dựng/destructor cần được thực hiện trong ICommand
. Tôi biết nếu tôi xóa các nhận xét, nó sẽ không biên dịch. Hãy thể ai đó:
- Chỉ cho tôi làm thế nào để khai báo constructor/destructor trong
ICommand
và làm thế nào họ có nghĩa là để được sử dụng trongMyCommand
- Có tôi đặt mọi thứ lên một cách chính xác trong
ICommand
đểMyCommand
phải ghi đè lênCallMe
vàCallMe2
.
Tôi hy vọng tôi đã không bỏ lỡ một cái gì đó thực sự đơn giản ...
Về cơ bản bạn nên sử dụng 'std :: string' và destructor sẽ là' {} '. Ngoài ra hãy tìm hiểu về danh sách khởi tạo của hàm tạo và xem xét liệu bạn có nên dùng 'const char *' hay không. – UncleBens