c++ - 接受对象作为参数的构造函数发生了什么?

标签 c++

我想问一下 objects conversion 的实际含义是什么,例如: 为什么我无法在将 foo 分配给 A 后使用 foo 在 B 类访问打印?!

#include <iostream>
using namespace std;

class A {};

class B {
public:
// conversion from A (constructor):
B (const A& x) {}
void print(){cout << "Huo Jackman!\n";}


};
int main ()
{
  A foo;
 B bar = foo;  // calls constructor
 foo.print();


 return 0;
}

最佳答案

使用:

bar.print();

请注意,在创建 bar 时,原始的 foo 对象并没有改变。 foo 的类型为 class A,它不包含 print 方法,并且在 C++ 中无法即时添加方法。

关于c++ - 接受对象作为参数的构造函数发生了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25706837/

相关文章:

c++ - 绳索: "large enough to benefit from cache effects"是什么?

c++ - 为什么我需要包含 <stdio.h> 才能使用 CUDA 的 printf()?

c++ - 在安装 NVIDIA CUDA 的同时使用 Intel OpenCL.dll

c++ - 你如何保持神经网络训练完好无损?

c++11 用户定义的物理属性单位文字

c++ - 如何使这个递归函数更快? (四叉树)

c++ - 将 DirectX SDK 代码转换为新的 Windows 8.1 SDK 代码

使用递归回溯的 C++ 数独求解器不起作用

C++:在 CMake 中禁用旧式转换警告

c++ - 在 Android NDK 应用程序上使用蓝牙扬声器的性能问题