2009-08-20 8 views
8

私はVisual C++で作業しています。同じソースファイルに2つの.cppファイルがあります。このメイン.cppの別のクラス(.cpp)関数にアクセスするにはどうすればよいですか?同じソースファイル内の別の.cppのメンバー関数にアクセスできますか?

+0

あなたは、ヘッダーファイルを使用したくないなぜあなたは説明していただけますか?あなたの問題を解決するのに役立つかもしれません。 –

+3

私は彼が彼がしたくないと言っているとは思わない。彼は* how * toを知りません。 –

答えて

11

あなたは.hファイルにクラスを定義する必要がありますし、これを.cppファイルに実装します。次に、クラスを使用する場所に.hファイルを含めます。

例えば

ファイルファイルuse_me.cpp

#include <iostream> 
class Use_me{ 

    public: void echo(char c); 

}; 

use_me.h

#include "use_me.h" //use_me.h must be placed in the same directory as use_me.cpp 

void Use_me::echo(char c){std::cout<<c<<std::endl;} 

main.cppに

#include "use_me.h"//use_me.h must be in the same directory as main.cpp 
    int main(){ 
     char c = 1; 

     Use_me use; 
     use.echo(c); 

     return 0; 

    } 
+0

Tom、ヘッダーファイルを作成せずにuse_me関数にアクセスできますか... – Rajakumar

+2

もちろん可能です。 'Use_me'クラス宣言をコピーし、* main.cpp *と* use_me.cpp *の' #include'ディレクティブのかわりにそれを貼り付けます。とにかくそれは '#include'の本質的なものです。あなたはそれをするためにばかげているでしょうが、それは確かに可能です。 –

+0

'#include 'のように' main.cpp'と同じディレクトリに 'use_me.h'を置く必要はありません – chaohuang

1

関数宣言を.hppファイルに入れ、main.cppファイルの中に#includeを入れてください。例えば

、あなたが呼んでいる機能がある場合:

int foo(int bar); 

、すべての.CPPに次の行を追加します。あなたはこれでfoobar.hppファイルを作成する必要があり

int foo(int bar) 
{ 
    return bar/2; 
} 

fooを呼び出すファイル:

#include "foobar.hpp" 
+0

は単に、ここでmain.cppにクラスAのオブジェクトを作成するための任意の可能性があります {----- }とmain.cppにである another.cppクラス、前記しましたか? – Rajakumar

+0

ありがとうNathan Fellman – Rajakumar

4

ヘッダファイルを作成せず。 extern修飾子を使用してください。

a.cpp

extern int sum (int a, int b); 

int main() 
{ 
    int z = sum (2, 3); 
    return 0; 
} 

b.cpp

int sum(int a, int b) 
{ 
    return a + b; 
} 
+3

私は関数がデフォルトではexternリンケージを持っていると確信しています。変数には 'extern'だけが必要です。 –

関連する問題