c++ - c++ getSize() 方法返回奇怪的值
问题描述
我正在创建 cpScalar.hpp 和 cpVector.hpp 文件,并且调用 cpVector 的 getSize() 方法时出错。下面是我的代码。
在 main 中删除 v2 会将 v1 的输出更改为 4,但是拥有 v2 会导致奇怪的输出。我尝试将 return this->size 更改为 return arr.size(),但它给出了类似的输出。
有人可以告诉我为什么会发生这种情况,如何解决它,或者给我一个指向告诉我这件事的页面的指令链接吗?我不知道这种问题叫什么,所以我什至无法搜索类似的问题。
谢谢。
//cpVector.hpp
private:
vector<cpScalar> arr;
unsigned int size;
public:
cpVector(cpScalar sarr[], unsigned int size2){ // this constructor is fixed
arr.resize(size2);
this->size = size2;
for (int i =0; i<size2; i++){
arr[i] = sarr[i];
}
};
unsigned int getSize(){
return this->size;
};
and at main:
int main()
{
cpScalar s_arr[4];
for(int i = 0; i < 4; i++){
s_arr[i] = cpScalar(i+1); //1, 2, 3, 4
}
cpVector v1(s_arr, 4);
cpScalar s_arr2[4];
for(int i = 4; i < 8; i++){
s_arr2[i] = cpScalar(i+1); //5,6,7,8
}
cpVector v2(s_arr2, 4);
cout << v1.getSize() << endl; // prints 1097313485
cout << v2.getSize() << endl; // prints 4
}
输出是:
1097313485\n 4
删除 v2 后的输出仅为 4
解决方案
推荐阅读
- android - 如何在 RecyclerView 中隐藏特定视图?
- python - 使用天蓝色错误“找不到资源”的情绪分析
- javascript - 带有 ZeroMQ 的 Electron/Node.js:如何与外部进程保持恒定的双工通信
- python - 将熊猫数据框列转换为具有特定日期格式的日期类型?
- jquery - jQuery Dialog 上的 Google Blockly UI 不可编辑
- go - 在给定索引的情况下打印字符串的排列
- swift - Swift - 基于不同尺寸设备的动作
- java - 使用扫描仪时找不到句子中的单词
- react-native - React Native - Scrollview 水平冻结
- c# - c# - MemoryMappedFile,MemoryMappedFileAccess.ReadExecute 做什么或者我应该什么时候使用它?