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)