为什么这段代码在传递变量名给MyBuffer构造函数时使用buf()?buf()到底做什么?
#include <iostream>
using namespace std;
class MyBuffer {
private:
int* myNums;
public:
explicit MyBuffer(unsigned int length) {
cout << "Constructor allocates " << length << " integers" << endl;
myNums = new int[length];
}
~MyBuffer() {
cout << "Destructor releasing allocated memory"<< endl;
delete[] myNums;
}
};
int main() {
cout << "How many integers would you like to store?" << endl;
unsigned int numsToStore = 0;
cin >> numsToStore;
MyBuffer buf(numsToStore);
return 0;
}
我对此做了一些研究,发现MyBuffer(numsToStore);实际上使编译器无法将numsToStore识别为MyBuffer的参数,而是将其识别为类似于以下内容的单独变量:要存储的我的缓冲区数;。解决这个问题的一个方法是添加buf(),但我不知道buf()的确切含义。
1条答案
按热度按时间nnsrf1az1#
class
不是对象,它是对象的 type。但是,要创建对象,可能需要向其构造函数传递参数: