OOP构造函数问题C++

Eyy*_*ber 2 c++ oop constructor

假设我有两个A和B类.

class A
{
    private:
        int value;
    public:
        A(int v)
        {
            value = v;
        }
};

class B
{
    private:
        A value;
    public:
        B()
        {
            // Here's my problem
        }

}
Run Code Online (Sandbox Code Playgroud)

我想这是基本的,但我不知道如何调用A的构造函数.

此外,编译器需要A类的默认构造函数.但是,如果A有一个默认构造函数,那么每当我声明一个类型A的变量时,都会调用默认构造函数.在调用默认构造函数之后,我仍然可以调用构造函数吗?或者我可以声明一个类的实例,然后再调用一个构造函数?

我认为这可以使用指针解决,但可以避免吗?

我知道你可以在C#中做这样的事情.

编辑:我想在构造函数中进行一些计算,而不是初始化类.我事先并不知道这些价值观.

假设我正在读取文件中的值,然后相应地初始化A.

fre*_*low 13

您要查找的术语是初始化列表.它使用冒号与构造函数体分隔,并确定成员的初始化方式.在可能的情

class A
{
    int value;

public:

    A(int value) : value(value) {}
};

class B
{
    A a;

public:

    B(int value) : a(value) {}
}
Run Code Online (Sandbox Code Playgroud)

我想在构造函数中进行一些计算,然后初始化类.我事先并不知道这些价值观.

只需在单独的函数中执行计算,然后在初始化列表中调用该函数.

class B
{
    A a;

    static int some_computation()
    {
        return 42;
    }

public:

    B() : a(some_computation()) {}
}
Run Code Online (Sandbox Code Playgroud)