在另一个类的声明中将参数传递给类构造函数

Posted

技术标签:

【中文标题】在另一个类的声明中将参数传递给类构造函数【英文标题】:Passing arguments to the class constructor in a declaration of another class 【发布时间】:2011-10-12 00:44:16 【问题描述】:

我有这样的东西:

#include <iostream>
using namespace std;

class FirstClass

    public:
        FirstClass(int _vx) : vx(_vx) 
        int x () return vx;
    private:
        int vx;
;

很明显,我必须写:

int main ()

    FirstClass Object1(666);
    cout << Object1.x();
    return 0;

一切正常。但问题是,当我想在另一个类中使用它时:

#include <iostream>
using namespace std;

class FirstClass

    public:
        FirstClass(int _vx) : vx(_vx) 
        int x () return vx;
    private:
        int vx;
;

class SecondClass

    public:
        FirstClass Member1(666);
;

int main ()

    SecondClass Object2;
    cout << Object2.Member1.x();
    return 0;

我什至无法编译它。所以,我的问题是:如何在 SecondClass 的声明中将参数传递给 FirstClass 的构造函数?

提前致谢。

【问题讨论】:

我在相关主题中找到了答案;抱歉重复... 【参考方案1】:

你必须在 SecondClass 的构造函数中将初始化值传递给 FirstClass,像这样:

class SecondClass:
   
   public:
      SecondClass() : Member1(666) 
      Firstclass Member1;
   ;

【讨论】:

以上是关于在另一个类的声明中将参数传递给类构造函数的主要内容,如果未能解决你的问题,请参考以下文章

当我们将对象作为参数传递给方法时,为啥会调用复制构造函数?

我们如何在 C++ 中将二维数组/向量作为函数参数传递? [复制]

c++ 在创建时将构造函数参数从父对象传递给子对象

如何将子类作为期望基类的函数的参数传递,然后将该对象传递给指向这些抽象类对象的指针向量?

当我将参数传递给类构造函数时,是否需要其他名称相同或自已的函数可用?

如何将构造函数参数传递给 AppDomain.CreateInstanceXXX?