I’m a PHP developer trying to write some C++.
I’m having trouble with assigning an object as an another object’s property. In PHP, I’d write this:
class A {
public $b;
}
class B {
}
$a = new A;
$a->b = new B;
How do I do that in C++? I got this so far:
class A {
B b;
public:
void setB(&B);
};
class B {
};
void A::setB(B &b)
{
this->b = b;
};
A * a = new A();
B * b = new B();
a->setB(b);
What am I doing wrong?
A couple changes will make it compile:
1. class B needs to be declared before A so that it can be used in class A
2. The declaration setB(&B) needs a minor change to setB(B&)
To make it more efficient consider the adding the following constructor that accepts B as an argument and the initializes the member variable ‘b’. This will use a copy constructor on the ‘b’ member variable instead of using the default constructor and then the assignment operator.