【问题标题】:Create Class Object within Method of Another Class C++在另一个类 C++ 的方法中创建类对象
【发布时间】:2019-07-29 18:53:56
【问题描述】:

我是 C++ 新手。如何在一个类中创建一个方法,用指定的参数初始化另一个类中的对象?类似于以下内容。

class A { 

public:

    double X;

    double Y;

    A(double a, double b) {

    X = a;

    Y = b;

    };

class B {

public:

 A f(double a, double b) {
    //Initialize an object of type A using parameters specified.
    };
};

我想稍后使用类型 A 的对象,所以大概我需要在 f 中使用 new 运算符。提前致谢。

【问题讨论】:

  • f() 应该返回A*,即A* f(double a, double b) { ... }
  • 谢谢!这很有帮助。 f的身体会是什么样子?使用上面的虚拟代码,与我尝试的类似的是 A* f(double a, double b) { B new objectB(a, b);返回对象B};但是,这似乎不起作用。

标签: class methods heap-memory delegation stack-memory


【解决方案1】:

试试这个:

class B {
 public:
  A* f(double a, double b) { return new A(a, b); };
};

尽管你可以在任何你想做的地方轻松地做new A(a,b)B.f(a,b)

【讨论】:

  • 其实,你会不会碰巧知道如何访问变量?我一直在尝试 B.f(a, b)->X 但它不起作用。
  • B.f() 返回一个 A 类型的新对象。您需要在B 之外访问返回的类型A 对象,例如A* obj_a = B.f(v1, v2); obj_a->something_of_A();。您可能想先阅读一本关于面向对象编程的书。
  • 我愿意!这是相当抽象的东西。感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 2012-06-01
  • 2014-07-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多