c++ - 将类的实例传递给不同类 C++ 的构造函数
问题描述
为什么我不能将一个类(Class1)的实例传递给另一个类(Class2)的构造函数,而必须在Class2对象的声明中创建一个新的Class1对象。
class Class1{
public:
int x;
Class1(){
}
Class1(int x){
this -> x = x;
}
};
class Class2{
public:
int y;
Class1 cInst;
Class2(int y, Class1 cInst){
this -> y = y;
this -> cInst = cInst;
}
};
Class1 a = Class1(0);
Class2 b = Class2(1, a); //error message here : "no instance of constructor "Class2::Class2" matches the argument list -- argument types are: (int, Class1)"
Class2 c = Class2(1, Class1(0)); //this works
我在这里对 c 的声明有效,但对 b 失败。我尝试过使用复制构造函数,但没有成功。是否可以在 C++ 中将一个类的实例传递给另一个类的构造函数?
解决方案
推荐阅读
- c# - 在 orderby Linq 中检查对象 null
- c# - 如何使用 Sharpmap 将经度和纬度映射到 WGS84?
- php - 如何访问返回的 json 值
- java - 从java执行bash脚本
- java - Spring Boot在测试中没有自动装配类
- vue.js - vue 路由在 chrome 中不起作用...在 IE 和 firefox 中运行良好
- multithreading - Wildfly 10:尝试实现 Java 并发实用程序时出错
- django - 如何根据表达式过滤对象
- javascript - 使用 node 或 express 返回 json 格式的正确方法
- matlab - 标量时间向量积的可绘制性