C++ 在该类的函数中使用该类的对象

标签 c++ oop class constructor

假设我有一个如下所示的头文件:

# filename: header.h
class myclass
{
 public:
    int myVariable; # arbitrary member variable
    foo(); # arbitrary function
    myclass() # default constructor
}

现在假设我想在某个 .cpp 文件中实现我的构造函数 [ myclass() ]: 我可以做一些事情,比如创建一个数组,对象,整数,任何东西 - 只是一些数组。 然后我可以遍历该数组并在我的构造函数定义中全部填充它吗?

我问的原因是因为我希望我的任意成员函数 foo() 能够更改这个数组。这导致了问题——我是否将 myclass 的对象传递给 foo [ foo(myclass myclassObject) ?

还是将此对象的数组传递给 foo() ?

如能对此作出任何澄清,我们将不胜感激。我尽量使示例尽可能不特定于特定情况,但仍然具有足够的描述性,让每个人都能理解问题。谢谢!

最佳答案

是的,您可以在构造函数中创建并“填充”一个数组,以便 foo 使用它。事实上,这就是构造函数的目的(为您设置一切)。

请注意,如果您希望 foo() 能够使用数组,则必须将数组作为类定义的一部分。

myclass.h

class myclass {
    private:
        int* arr; // declared on the "heap"
    public:
        foo();
        myclass(int arraySize);
};

myclass.cpp

#include "myclass.h"
#include <stdio>

myclass::myclass(int arraySize) :arr(new int[arraySize]) {}

myclass::foo() {
    // prints the elements of the array we declared earlier
    for (int i = 0; i < 5; i++) {
        std::cout << arr[i] << std::endl;
    }
}

关于C++ 在该类的函数中使用该类的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15674950/

相关文章:

Python 类 - 使用实例作为属性

C++:类/结构是否在编译时初始化过?

c++ - 矩阵类 : "No instance of overloaded function push_back matches the argument list"

c++ - 在具有菱形继承和虚拟基类的类中调用函数的策略

java - 如何在某个类中使用另一个类的方法?

mysql - 抽象的概念与 MySQL 中的表相关吗?如果是这样,我该怎么做?

Javascript:使用类表达式向原型(prototype)添加属性

android - 如何在 C++ OpenCV 中显示带有 putText 的计时器结果?

c++ - 为什么这个测试应用程序在不同的机器上给出不同的结果? (关于后增量和线程安全)

php - 工厂方法可能违反 Demeter 法则?