【发布时间】:2015-12-16 13:23:18
【问题描述】:
我有一个名为 A 的基类,其中包含一个字符串类型参数。
B 类派生自 A。
我定义类 C 有参数 A* a,并且 将其分配给 B。
在主函数中,我无法获取基类的字符串值,因为它在 b 解构时变为空白。
我希望它输出:
"Hello!"
"Hello!"
end
但是输出是:
"Hello!"
end
这是我的代码:
class A {
public:
string str;
};
class B : public A {
public:
B(string _str) {
str = _str;
}
};
class C {
public:
A *a;
public:
void printOut() {
B b("Hello!");
a = &b;
cout << a->str << endl;
}
};
int main() {
C c;
c.printOut();
cout << c.a->str << endl;
cout << "end" << endl;
return 0;
}
我该如何处理?
【问题讨论】:
-
我该如何处理? -- 这不是一个明确的要求。问题出在哪里很明显——你真正想要做什么并不明显。
-
您处理undefined behavior 的方法是在不知情的情况下调用它,并在它因错误而发生时对其进行修复。
标签: c++ string inheritance derived-class