在C++中,封裝性是指將數(shù)據(jù)(屬性)和操作數(shù)據(jù)的方法(函數(shù))包裝在一起,從而隱藏了類的內(nèi)部實現(xiàn)細(xì)節(jié)。為了實現(xiàn)類的擴(kuò)展,我們可以使用以下方法:
class Base {
public:
virtual void foo() {
// 基類實現(xiàn)
}
};
class Derived : public Base {
public:
void foo() override {
// 派生類實現(xiàn)
}
};
= 0
表示。派生類必須實現(xiàn)這個純虛函數(shù),否則它們也將成為抽象類。這種方式可以用來強制使用基類的接口,同時允許通過派生類擴(kuò)展功能。class Abstract {
public:
virtual void bar() = 0; // 純虛函數(shù)
};
class Concrete : public Abstract {
public:
void bar() override {
// 具體實現(xiàn)
}
};
class Engine {
public:
void start() {
// 發(fā)動機啟動實現(xiàn)
}
};
class Car {
private:
Engine engine;
public:
void start() {
engine.start(); // 調(diào)用發(fā)動機啟動實現(xiàn)
}
};
template <typename T>
class Container {
private:
T data;
public:
void set(T value) {
data = value;
}
T get() {
return data;
}
};
int main() {
Container<int> intContainer;
intContainer.set(42);
int value = intContainer.get(); // value 為 42
Container<std::string> stringContainer;
stringContainer.set("Hello, World!");
std::string strValue = stringContainer.get(); // strValue 為 "Hello, World!"
return 0;
}
通過使用這些方法,我們可以在C++中實現(xiàn)類的擴(kuò)展,同時保持封裝性和代碼的可維護(hù)性。