稍后在 C++ 中的另一个类方法中调用类构造函数

约翰·萨尔

我正在编写 A 类,它有一个初始化值的构造函数。我正在另一个 B 类中创建 A 类的实例,如下所示:

#include <iostream>

class A {
public:
    int value;

    A(int value) {
        this->value = value;
    }

    void print_string() {
        std::cout << "talking...";
    }
};

class B {
public:
    A new_a;

    B(int b_value) {
        new_a = A(b_value);
    }

    void print_from_A() {
        new_a.print_string();
    }
};

int main() {
    B b(23);
    b.print_from_A();
    return 0;
}

但是,我对syntax这段代码错误,它说no default constructor exist for class A 什么我想要的是

1使类 A 的实例在类 B 中成为全局实例,以便类 B 中的其他方法可以访问它。

2通过调用它的构造函数来初始化类 A 中的值,并通过类 B 传递值

托马斯·萨布里克

没有默认构造函数A您应该使用成员初始值设定项列表

    B(int b_value): new_a(b_value) {
    }

你的构造函数

    B(int b_value) {
        new_a = A(b_value);
    }

尝试默认初始化new_a然后分配A(b_value)给它。但是没有默认构造函数就不可能进行默认初始化。您应该始终使用成员初始值设定项列表

    A(int value): value(value) {
    }

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

C# 在类中存储一个整数输入以供稍后调用?

C ++-从另一个类构造函数调用一个类构造函数

稍后调用的 C++ 函数

我可以从 C# 中另一个类的构造函数调用构造函数吗?

稍后调用委托函数C#MVC

C ++中带有另一个模板类作为参数的构造函数

在 C# 中从另一个类调用主窗体中的函数

在构造函数C ++中调用另一个对象的方法

从 C#/.NET MVC 应用程序中的另一个类调用函数

在另一个类中调用成员函数c ++

C ++从文件阅读器中的另一个类调用集合函数

Objective-C:在另一个类中调用一个类的属性

在一个函数中插入“ continue”语句,稍后在另一个函数“ For loop”语句中调用

从Visual C#中的另一个类调用动态方法

如何调用在另一个类中声明的方法(C ++)

c#如何从另一个类中的通用扩展方法调用Action

为什么从另一个构造函数内部调用的C ++构造函数不会修改类变量?

C ++创建一个函数,如变量,稍后更改其主体,然后再调用

存储来自另一个类的未知函数以供稍后执行

如何在C#中的另一个方法中调用同一类中的方法?

构造函数中的 C++ 语法错误 - 参数是对来自另一个类的对象的引用

我如何在c ++中稍后转发类的声明并使用其成员函数?

我可以在C ++中从另一个构造函数调用构造函数(构造函数链接)吗?

另一个类的c ++私有对象:初始化并使用它调用该类中的函数

C ++试图将类传递给另一个类的构造函数

C ++实例化对象,该对象在另一个没有指针的类构造函数中没有默认构造函数

c#将一个类的列表调用到另一个类中

如何在C#中向页面资源添加一个故事板动画,然后稍后再次调用它?

如何从 C# 中的另一个方法引用一个类?