我試圖使類功能,我可以粘貼到其他類,如嵌套類。我對C++還是比較陌生的,所以我可能不會嘗試使用嵌套類,但是據我所知,這就是我所處的位置。通過文件嵌套的類定義和啓動
現在,我剛剛在Chrome中寫了這個,所以它沒有真正的用處,但我想保持代碼簡短。
我編寫在Windows 7上,使用Visual Studio 2015年
我在file_1.h兩類:
#pragma once
#include "file_2.h"
class magic_beans{
public:
magic_beans();
~magic_beans();
int getTotal();
private:
double total[2]; //they have magic fractions
}
class magic_box{
public:
magic_box(); //initiate
~magic_box(); //make sure all objects have been executed
void update();
magic_beans beans; //works fine
magic_apples apples; //does not work
private:
int true_rand; //because it's magic
};
...而且我有一個file_2.h類:現在
#pragma once
#include "file_1.h"
class magic_apples{
public:
magic_apples();
~magic_apples();
int getTotal();
private:
double total[2];
}
,我發現我可以簡單地改變:
magic_apples apples;
要:
class magic_apples *apples;
而在我的構造我補充一下:
apples = new magic_apples;
而在我的析構函數,我可以告訴大家:
delete apples;
我爲什麼必須引用定義的類一個使用指針的外部文件,而本地定義的一個很好?
理想情況下,我希望能夠像定義magic_beans一樣定義magic_apples。我不反對使用指針,但保持我的代碼相當統一我有興趣找到一種替代定義方法。
我已經在file_1.h的magic_box類中嘗試了一些magic_apples的替代定義,但是我一直無法獲得任何其他的工作。
「爲什麼要我指的是使用指針外部文件中定義的類,而一個本地定義是罰款?」誰告訴過你的!?!? –
順便說一句,你有流通包括沒有後衛..看到這個http://stackoverflow.com/questions/4767068/c-header-guards –
我還沒有任何正式的培訓使用c + +,只有c,所以我在我大部分時間都在這裏。 我在所有頭文件中都使用了#pragma。 – Jarred