c++ - 构造函数链接和初始化语法

标签 c++ oop constructor

<分区>

假设我有两个类,其中一个依赖于另一个:

class A
{
public: 
    A(bool flag)
    {
    }
};

class B
{
public: 
    B(A a) :
        mA(a)
    {
    }
    A mA;
};

现在假设我还有另外两个类:一个使用 Foo 和 Bar 的基类,以及一个从中派生的类:

class Base
{
public: 
    Base(A a, B b) :
        mA(a),
        mB(b)
    {
    }

    A mA;
    B mB;
};

class Derived : Base
{
    Derived() :
        Base(A(true), B(????))
    {
    }
};

这里怎么构造bar?

最佳答案

像这样:

class Derived
:
  public Base
{
public:
  Derived()
  :
    Base (true, Foo (false))
{
};

这里不要使用new。我们不再使用 C#,Toto。 new 用于对象的动态实例化,它返回一个指针。您没有在这里动态分配任何东西,也没有存储指针。您不使用 new

关于c++ - 构造函数链接和初始化语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21340581/

相关文章:

c# - 字节数组编码

c++ - 需要一种方法为 boost::spirit::qi 解析器加上另一个前缀

C#:构造函数中的奇怪引用的行为类似于 "virtual field"

c++ - 使用指针实例化类

python - 保存Python字典并在稍后阶段检索它们的正确方法

java - super() 应该隐式调用还是显式调用?

Python装饰器自动定义__init__变量

c++ - 如何在与 boost 正则表达式匹配的字符串中找到索引?

c++ find_if lambda

Swift, "subclass"UITableView 的数据源方法不知何故?