一個非常簡單的代碼,帶有一個奇怪的問題。代碼通過罰款,但我似乎無法得到所需的輸出。我的getStock()和getQuantity()功能似乎不起作用。當我調試代碼時,它會顯示'錯誤,讀取內存'。當執行到達s.dispP()代碼意外崩潰。似乎無法找到解決方案。請幫助。謝謝。C++中的內存管理問題
#include<iostream>
#include<conio.h>
using namespace std;
class Sale
{
class SaleItem
{
int stock, quantity;
public:
SaleItem(int pstock, int pquantity) : stock(pstock), quantity(pquantity)
{
}
int getStock()
{
return stock;
}
int getQuantity()
{
return quantity;
}
};
int sstock, squantity;
public:
SaleItem *si;
void addP()
{
cout << "Enter Stock: ";
cin >> sstock;
cout << "Enter Quantity: ";
cin >> squantity;
SaleItem *si = new SaleItem(sstock, squantity);
}
void dispP()
{
cout << si->getStock() << endl << si->getQuantity();
}
};
void main()
{
Sale s;
s.addP();
s.dispP();
_getch();
}
目前尚不清楚,甚至需要一個智能指針。 – juanchopanza
@ juanchopanza是真的,但建議仍然成立:) – Curious
不使用擁有原始指針的建議是。使用'unique_ptr'的建議並非如此。 – juanchopanza