嘿,我幾年前教了自己的PHP,現在在大學裏,並且對Java比較熟練(因此我的意思是我是初學者,但是我的數據結構當然在這我將採取算法下學期)幫助第一個C++類/指針
在任何情況下......我想學C++和偶然發現了這一點: http://newdata.box.sk/bx/c/
什麼是真的絆倒了我,現在是一個指針。 ..我想我得到的理論,但一個非常簡單的「程序」是不正確的。它編譯,但然後有一個內存錯誤。
我已經決定購買C++ Primer,在這裏進行一些搜索,因此它會在週五到達這裏。在此之前,任何人都可以告訴我什麼是(可怕的)錯這個簡單的代碼:
class Number {
public:
string *owner;
int getNum() {
return *num;
}
int getTwice() {
return *twice;
}
Number(int our_num, string me) {
*num = our_num;
*twice = 2 * *num;
*owner = me;
}
private:
int *num;
int *twice;
};
int main()
{
Number *nbr3 = new Number(3,"Bob");
cout << nbr3->getNum() << endl;
cout << nbr3->getTwice() << endl;
cout << nbr3->owner << endl;
delete nbr3;
system("PAUSE");
return 0;
}
的錯誤出現在構造函數...像* NUM = our_num一部分。
但是,不是說「將num指針的值設置爲our_num」?這就是我想要的!
感謝您與我所知道的幫助是一個非常愚蠢的和根本性的錯誤...
沒有**算哪裏,你試圖做「2 * NUM」,還必須「民」和「兩次」爲指針,以一些記憶,但你不被方式,爲他們分配內存 – fazo 2011-03-03 04:51:37
哦...我認爲代碼試圖做的事情相當明顯,但以防萬一:我有一個「Number」類,每個Number都有一個值和一個所有者,當創建一個新實例時,它們都被傳入。然後還有「兩倍」值,它被設置爲數值的兩倍。 – 2011-03-03 04:52:19
我要加你如何需要得到一個C++的書,從無數次學習評論,直到你提到你已經購買了C++入門。第一次在Stack Overflow上搜索你的榮譽。 – 2011-03-03 04:54:38