データのコピーを減らすために、メンバーデータポインタを作成する必要があります。サンプルコードをいくつか記述しました。「エラー」とマークしたところにエラーが発生しました。正しく行う方法。
#include <iostream>
class A {
public:
A() {
stra="12345";
}
virtual ~A() {}
string stra;
}
class B {
public:
B(A *pt) {
strb=&(pt->stra); //Error.An assignment statement
}
virtual ~B() {}
string A::*strb; //member data pointer from class A
}
int main() {
A ma;
B mb(&ma);
std::cout<< *(mb.strb) <<std::endl; //Error.print data
}