继承中出现奇怪的意外结果
Bizarre unexpected result in inheritance
非常简单的程序。类B继承了A,我试图打印这两个数据成员,但由于某种原因,类A的数据成员a
被打印为垃圾值,而不是实际值。
#include <iostream>
using namespace std;
class A {
int a;
public:
A(int x) {
x = a;
}
int getA() {
return a;
}
};
class B : private A {
int b;
public:
B(int x, int y) : A(y) {
b = x;
}
void print() {
cout << getA() << endl << b << endl;
}
};
int main() {
B b(10,20);
b.print();
return 0;
}
输出:
1627414140
10
您的错误在这里:
A(int x) {
x = a;
}
我相信你希望它是:
A(int x) {
a = x;
}
相关文章:
- 尝试将字符串/字符转换为整数会产生意外结果
- RapidXML - 代码创建意外结果
- 类中静态函数C++意外结果
- 指针数组中的意外结果
- 使用指针访问数组元素时出现意外结果
- 使用 sprintf 和 %g 将双精度转换为字符串的意外结果
- C++:比较运算符>和字符串文本的意外结果
- 具有意外结果的 C++ 闭包
- yaml-cpp 比较的意外结果
- 每次都出现意外结果
- 在 Qt 中解析嵌套的 JSON 时出现意外结果(数组不存在)
- 如何避免 std::abs 的意外结果?
- 使用嵌套 if 语句的意外结果
- A ^= B ^= A ^= B;C# Visual Studio 中的意外结果
- 逻辑错误,我将获得意外结果
- 在 c++ 中使用异步的意外结果
- 从函数的返回值将元素C++存储到 std::vector 中时出现意外结果
- 执行递增和递减时"cout"链接会产生意外结果
- OpenCL - 内核方法返回意外结果
- C++使用 std::get_time 解析 YYMMDD ISO 8601 日期字符串会得到意外结果