假设我有一个如下所示的头文件:
# 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/