2017-03-29 7 views
0

私はヘッダで宣言された構造体をソースに実装しています。ソースファイルは、私の構造体変数で実行することができますが、私のメインはそれを見ることはできません。どうして ?構造体はAnotherSourceではなくソースで読み取ることができません

A.hpp

#include "stdafx.h" 
#include <iostream> 
#include <stdlib.h> 

class A { 
public: 
    struct myStruct { 
     int someInt; 
    } myStructVar; 

    void loadA(); 
}; 

A.cpp

#include "stdafx.h" 
#include "A.h" 

void A::loadA() { 
    myStructVar.someInt = 10; 
    std::cout << myStructVar.someInt << std::endl; // 10 OK 
} 

MAIN.CPP

#include "stdafx.h" 
#include "A.h" 

int _tmain(int argc, _TCHAR* argv[]) 
{ 
    A a; 
    a.loadA(); 
    std::cout << myStructVar.someInt() << std::endl; // Error: identifier "myStructVar" is undefined 
    system("PAUSE"); 
    return 0; 
} 

エラーが

Error: identifier "myStructVar" is undefined.

MAIN.CPP

されています

ありがとうございます。

+6

に 'myStructVar'は、グローバルスコープに存在しないが、むしろA''の範囲インチ'a.myStructVar'を使ってそれを参照してください。 –

+0

最初のエラーを修正すると、より多くのエラーが発生します。 'someInt'とは何ですか? –

+0

最初の問題(あなたが尋ねること)に関しては、おそらくあなたは[良い初心者の本](http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list)と続行する前に読む? –

答えて

2

変更

std::cout << myStructVar.someInt() << std::endl; 

std::cout << a.myStructVar.someInt << std::endl; 
関連する問題