c++ - 我应该使用指向 OOP 对象的指针还是应该创建默认构造函数?

标签 c++ oop default-constructor

<分区>

我对 C++ 对象真的很困惑。如果一个对象必须用参数初始化(大多数对象都这样做),我应该创建一个带参数的构造函数,从而在存储它们时始终创建指向我的对象的指针,还是应该有一个空的构造函数和一个 Init() 方法,它接受初始化我的对象所需的参数,以便我的对象可以有非指针字段?

编辑:我的意思是:

//A.h
class A
{
    public:
        A(int x);
}
//B.h
class B
{
    private:
        A myobject;
}

将抛出 IntelliSense:类“A”不存在默认构造函数

所以我可以这样做:

//B.h
class B
{
 private:
  A* myobject;
}

//A.h

class A
{
 public:
  A(void);
  void Init(int x);
}

哪些是正确的做法?

最佳答案

初始化列表功能的存在正是为了让您可以将参数传递给成员的构造函数。

class B {
  A a;
public:
  B();
};

B::B() : a(99) {}

关于c++ - 我应该使用指向 OOP 对象的指针还是应该创建默认构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22175325/

相关文章:

c++ - 在 VC++ 中通过 C++ 代码访问 GUI 组件

c++ - 如何从 dlopen 的库 L 访问程序 P 中的静态变量?

c++ - 字母表函数

c++ - 赋值运算符在我制作类模板时使代码崩溃

c++ - 在类默认构造函数中初始化 2x2 矩阵

java - 错误: constructor Droid in class Droid cannot be applied to given types;

c++ - 以参数为默认值的构造函数

c++ - 对 C++ 中的覆盖感到困惑

java - 在 setter 方法中做其他事情是否被认为有副作用?

ruby - 如何在目录中自动创建每个类的实例?