2017-02-18 7 views
0

これはC++に関する一般的な質問です。私はさまざまなカメラのプロパティを含むプライベートメンバの構造体を含むカメラクラスを作成しようとしています。クラス内にstructを書く

Class Camere 
{ 
public: 


int read_input_image(properties &c, const char *file_name);  

private: 
struct properties 
{ 
double* input_image; 
double* output_image; 
---- 
---- 
} 
} 

プロパティc; }

.cppファイル

int Camera :: read_input_image(properties &c, const char *file_name) { 
     if(c.input_image == 0) { 
     c.input_image = new uint8_image_t; 
     c.input_image->data = 0; 
    } 

、 1.私の質問は、私は構造体のメンバにアクセスする機能を書きたい場合、私は構造体、 のプライベートメンバーへのアクセスを取得する方法をです。 2.もう一つの質問は、内部クラスのstructに関連付けられたポインタを削除する方法です。input_imageポインタを削除する必要がありますか?

+0

クラスワードを小文字に変更し、Camereまたはカメラを修正してください。 –

答えて

0

は、どのように私は、構造体のデフォルトのアクセスが公開されているので、そのメンバーのすべてが公開され、構造体

構造体が全くプライベートメンバーを持っていないのプライベートメンバーにアクセスすることになるだろう。

それはnewエドメモリを指しているので、私はinput_imageポインタに

を削除する必要がありますはい、あなたはdelete input_imageする必要があります。

+0

int read_input_image(プロパティ&c、const char * file_name);エラーを表示していますが、この構造を使って私的に関数を呼び出す方法はありますか? – Angelina

0

構造体のメンバーはプライベートではなく、構造体自体の定義です。

メンバーはプライベートではないので(構造体のメンバーは特に指定しない限り公開されています)、struct propertiesが知られている任意の場所(この場合はクラスCamere)にアクセスできます。 クラスCamereの外では、struct propertiesは不明でアクセスできません。これは、プライベートメンバーではないが、struct propertiesの定義が公開されていないためではないことに注意してください。

関連する問題