相关疑难解决方法(0)

初始化列表中的C++临时变量

在C++中,有没有办法在初始化列表中有类似临时变量的东西.我想初始化两个具有相同实例的常量成员,而不必传递该内容,删除const要求,使用Factory(即将其传入但工厂生成它以将其隐藏在API用户中),或者让temp实际上是一个成员变量.

就是这样的

Class Baz{
    const Foo f;
    const Bar b;
    Baz(Paramaters p):temp(p),f(p,temp),b(p,temp){ //temp is an instance of Something
                                                  // But NOT A member of Baz
    // Whatever
    }
}
Run Code Online (Sandbox Code Playgroud)

代替

Class Baz{
    Foo f;
    Bar b;
    Baz(Paramaters p){
        Something temp(p);
        f = Foo(p,temp)
        b = Bar(p,temp)
    }
}
Run Code Online (Sandbox Code Playgroud)

要么

Class Baz{
    Foo f;
    Bar b;
    Baz(Paramaters p,Something s):f(p,s),b(p,s){
    }
}
Run Code Online (Sandbox Code Playgroud)

c++ initialization const

15
推荐指数
1
解决办法
2983
查看次数

C++在初始化列表中的基类初始化之前调用函数

场景:

在一个项目中,我有class B一个派生自class A哪里,哪里class A有一个无法访问的默认构造函数.

Class B 设置如下:

class B : public A
{
private:
    void SetupFunction() { /*Crucial code*/ }
public:
    B() : A(Value) {}
}
Run Code Online (Sandbox Code Playgroud)

假设在构造SetupFunction()函数之前初始化期间调用是至关重要的,A(Value)我将如何实现这一目标?可能吗?

Code::Blocks 13.12在Windows 7上使用

c++ constructor

6
推荐指数
1
解决办法
1459
查看次数

标签 统计

c++ ×2

const ×1

constructor ×1

initialization ×1