小编duc*_*ver的帖子

将一个类传递给另一个类的构造函数时,C++ 没有默认构造函数错误

我正在编写一些 C++ 类,其中一个类将另一个类的实例作为属性。在编写类构造函数时,我不断收到错误消息“类 Foo 不存在默认构造函数”。这是一个重现错误的小示例:

class Foo {
    int size;
    char name;
    Foo(int s,char n) {
        size = s;
        name = n;
    }
};

class Bar {
    int size;
    char name;
    Foo foo;
    Bar(int s, char n,Foo f){
        size = s;
        name = n;
        foo = f;
    }
};
Run Code Online (Sandbox Code Playgroud)

如果我删除 Foo 的类构造函数以便使用默认构造函数,错误就会消失。由于我将 Foo 类的现有实例传递到 Bar 的构造函数中,我不明白为什么错误会谈论 Foo 的构造函数。为什么会出现错误?以及如何修复代码?

c++ constructor

2
推荐指数
1
解决办法
107
查看次数

标签 统计

c++ ×1

constructor ×1