C++ 将堆栈对象等同于对象C++;

C++ 将堆栈对象等同于对象C++;,c++,initialization,C++,Initialization,我有两个对象,分别称为A和B e、 g 如果用参数初始化B,我想用参数初始化a1,用参数初始化B,因此A(int x,int y) 我不想在堆中初始化a1 我当前收到这个错误 没有运算符“=”与这些操作数匹配--操作数类型为:const Brain=Brain 修正 下面的答案由@songyuanyao提供 B::B(int x, int y) : a1(x, y){}; 它可以工作,但我现在有一个不同的问题,因为我缺乏const的知识。当我从A(intx,inty)这样调用setX和setY

我有两个对象,分别称为
A
B
e、 g

如果用参数初始化
B
,我想用参数初始化
a1
,用参数初始化
B
,因此
A(int x,int y)

我不想在堆中初始化
a1

我当前收到这个错误

没有运算符“=”与这些操作数匹配--操作数类型为:const Brain=Brain

修正 下面的答案由@songyuanyao提供

B::B(int x, int y) : a1(x, y){};
它可以工作,但我现在有一个不同的问题,因为我缺乏
const
的知识。当我从
A(intx,inty)
这样调用
setX
setY

A::A(int x, int y) {
    setX(x);
    setY(y);
}

void A::setX(int x) {
    this->x = x;
}

void A::setY(int y) {
    this->y = y;
}

它似乎不会更改类
A
x
y
值/属性。您应该使用初始化
const
数据成员。作为
const
对象,它可以初始化,但不能赋值;所以
this->a1=a不起作用

对于无法默认初始化的成员,例如引用和常量限定类型的成员,必须指定成员初始值设定项

e、 g


谢谢,请检查我对question@SASSY_ROG你说它似乎没有改变类
A
x
y
值/属性是什么意思?
x
y
不改变传递给
B
类构造函数的任何变量,例如
B(4,5)
@SASSY\u ROG它应该可以正常工作;我试了一个
A::A(int x, int y) {
    setX(x);
    setY(y);
}

void A::setX(int x) {
    this->x = x;
}

void A::setY(int y) {
    this->y = y;
}
B(int x, int y) : a1(x, y) {}