小编don*_*ger的帖子

C++与抽象类的组合

假设我有一个抽象类,创建和复制是昂贵的:

class AbstractBase {
public:
    AbstractBase() {
        for (int i = 0; i < 50000000; ++i) {
            values.push_back(i);
        }
    }

    virtual void doThing() = 0;

private:
    vector<int> values;
};
Run Code Online (Sandbox Code Playgroud)

它有两个子类FirstDerived:

class FirstDerived : public AbstractBase {
public:
    void doThing() {
        std::cout << "I did the thing in FirstDerived!\n";
    }

};
Run Code Online (Sandbox Code Playgroud)

并且SecondDerived:

class SecondDerived : public AbstractBase {
public:
    void doThing() {
        std::cout << "I did the thing in SecondDerived!\n";
    }
};
Run Code Online (Sandbox Code Playgroud)

此外,我想创建一个使用FirstDerivedSecondDerived使用组合(不是聚合)的类.意思是说我想 …

c++ oop optimization composition c++11

2
推荐指数
1
解决办法
423
查看次数

标签 统计

c++ ×1

c++11 ×1

composition ×1

oop ×1

optimization ×1